opengl三维图形图形颜色_【图形学基础】基本概念

右手坐标系。

829c679bb7d1466c4c5af09086f5645d.png

类似OpenGL遵循的右手坐标系

首先它是三维的笛卡尔坐标系:原点在屏幕正中,x轴从屏幕左向右,最左是-1,最右是1;y轴从屏幕下向上,最下是-1,最上是1;z轴从屏幕里面向外,最里面是-1,最外面是1。

50158d34c6879a48daf6c9caf2bb708a.png

shader(vertex & fragment)

GL ES 2.0与1.0版本最大的区别在于,把渲染相关的操作用一个专门的叫作着色语言的程序来表达,全名叫作OpenGL ES Shading language,它是一个编程语言,与C语言非常类似,能够直接操作矩阵和向量,运行在GPU之上
专门用于图形渲染。它又分为两种,

  • 顶点着色器(vertex shader):指定几何形状的顶点
  • 片元着色器(fragment shader): 指定每个顶点的着色


每个GL程序必须要有一个vertex shader和一个fragment shader,且它们是相互对应的。(相互对应,意思是vertex shader必须要有一个fragment shader,反之亦然,但并不一定是一一对应)。当然,也是可以复用的,
比如同一个vertex shader,可能会多个fragment shader来表达不同的着色方案。

5f6176eaf45661be8f15700d3b90d65b.png

a2111c965d7d50cb84c3ec1c9c40a212.png

2e11738ce645d5b15f349617db0cb945.png

坐标值和颜色值

坐标正常的取值范围都是-1到1,且是float类型。
颜色值是0到1,也是float类型,0是空(无的意思,比如黑色,或者全透明),1是有(全的意思,比如白色,或者不透明),有些API是使用0~255,这时就需要转换一下。
其实呢,写成超过此范围的值也是可以的,比如坐标传2,或者颜色写成5,OpenGL会处理成为它的合理的取值之内,用clamp的方式,超过的会被砍掉,如传5,相当于传1。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/394578.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

xp职称计算机考试题库,2015年职称计算机考试XP题库.doc

2015年职称计算机考试XP题库.doc (7页)本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦!9.90 积分2015年职称计算机考试XP题库职称计算机考试考点精编:工具栏的设置与操作XP中将…

Java基础学习-Path环境变量的配置

1.为什么要进行Path环境变量的配置程序的编译和执行需要使用到javac和java命令,所以只能在bin目录下写程序,而实际开发中,我们不可能将程序全部写到bin目录下,所以我们不许让javac和java命令在任意目录下都能够被访问。这时候&…

rails 共享变量_如何将Rails实例变量传递给Vue组件

rails 共享变量by Gareth Fuller由Gareth Fuller 如何将Rails实例变量传递给Vue组件 (How to pass Rails instance variables into Vue components) I’m currently working with a legacy Rails application. We are slowly transitioning the front-end from Rails views to…

Leetcode: Counting Bits

Given a non negative integer number num. For every numbers i in the range 0 ≤ i ≤ num calculate the number of 1s in their binary representation and return them as an array.Example: For num 5 you should return [0,1,1,2,1,2].Follow up:It is very easy to c…

第一个python爬虫_Python爬虫01——第一个小爬虫

Python小爬虫——贴吧图片的爬取 在对Python有了一定的基础学习后,进行贴吧图片抓取小程序的编写。 目标: 首先肯定要实现图片抓取这个基本功能 然后实现对用户所给的链接进行抓取 最后要有一定的交互,程序不能太傻吧 一、页面获取 要让pytho…

Mac下,如何把项目托管到Github上(Github Desktop的使用)

在上一篇中,详细讲解了使用X-code和终端配合上传代码的方法,这种方法比较传统,中间会有坑,英文看起来也费劲,不过Github官方提供了一个Mac版的客户端,如下图: 附上下载链接:传送门 下…

计算机网络英文面试题,计算机网络面试题整理

GET和POST的区别?GET和POST方法没有实质上区别,只是报文格式不同。GET和POST是HTTP协议中的两种请求方法。而 HTTP 协议是基于 TCP/IP 的应用层协议,无论 GET 还是 POST,用的都是同一个传输层协议,所以在传输上&#x…

利用递归求某数的阶乘——C/C++

#include<stdio.h>int getFactorial(int n) {if(n0)return 1;else return n*getFactorial(n-1); }int main() {int n,res;scanf("%d",&n);res getFactorial(n);printf("%d",res);return 0; } 转载于:https://www.cnblogs.com/daemon94011/p/106…

intern_充分利用Outreachy Intern申请流程

internby Joannah Nanjekye乔安娜南耶基(Joannah Nanjekye) 充分利用Outreachy Intern申请流程 (Get the most out of your Outreachy Intern application process) Outreachy gives three-month paid internships for persons that are underrepresented in tech. Interns ar…

Put-Me-Down项目Postmortem2

一.设想和目标二.计划三.资源四.变更管理五.设计/实现六.测试/发布总结一.设想和目标 1. 我们的软件要解决什么问题&#xff1f;是否定义得很清楚&#xff1f;是否对典型用户和典型场景有清晰的描述&#xff1f; 我们的软件要帮助低头族控制使用手机时间。功能很明确&#xff0…

大数据实验报告总结体会_建设大数据中台架构思考与总结

简介本文介绍完善的大数据中台架构了解这些架构里每个部分的位置&#xff0c;功能和含义及背后原理及应用场景。帮助技术与产品经理对大数据技术体系有个全面的了解。数据中台定义&#xff1a;集成离线数仓与实时数仓&#xff0c;并以多数据源统一整合采集到kafka,再通过kafka进…

半数集问题

给定一个自然数n&#xff0c;由n开始可以依次产生半数集set(n)中的数如下&#xff1a; (1) n ∈set(n)&#xff1b; (2) 在n的左边加上一个自然数&#xff0c;但该自然数不能超过最近添加的数的一半&#xff1b; (3) 按此规则进行处理&#xff0c;直到不能再添加自然数为止。…

微型计算机控制理论基础答案,微型计算机控制技术试卷c

微型计算机控制技术试卷a潘新民 微型计算机控制技术实用教程微型计算机控制技术试卷C一、选择题(本题共10小题&#xff0c;每小题 1.5分&#xff0c;共15分)1. DAC0832的VREF接-5V&#xff0c;IOUT1接运算放大器异名端&#xff0c;输入为1000000B &#xff0c;输出为( )。A. 5V…

aws lambda_四处奔走:初学者遇到AWS Lambda

aws lambdaby Janaka Bandara通过Janaka Bandara 四处奔走&#xff1a;初学者遇到AWS Lambda (Running around the block: a beginner meets AWS Lambda) Computing! It sure has a very long, vivid (and sometimes awkward) history. Some key milestones include:计算&…

python打开快捷方式_Python创建启动目录的快捷方式,python,到

# -*- coding:utf-8 -*-# author&#xff1a;lizonezhiimport osimport sysimport pythoncomimport win32com.client as clientdef createShortCut(filename): # 目前创建的无起始位置"""filename should be abspath, or there will be some strange errors&quo…

二叉树的基本操作及应用(三)

#include <stdio.h> #include <stdlib.h> #include <malloc.h> #include <string.h> typedef char DataType; int depth0; int h11; int nlayer1; char ch2; typedef struct node {DataType data;//节点数据元素struct node *lchild;//指向左孩子struc…

maven的profile详解

详细内容请见&#xff1a;https://www.cnblogs.com/wxgblogs/p/6696229.html Profile能让你为一个特殊的环境自定义一个特殊的构建&#xff1b;profile使得不同环境间构建的可移植性成为可能。Maven中的profile是一组可选的配置&#xff0c;可以用来设置或者覆盖配置默认值。有…

夏至未至计算机版音乐,夏至未至有哪些插曲背景音乐 夏至未至所有bgm歌曲汇总...

夏至未至有哪些插曲背景音乐 夏至未至所有bgm歌曲汇总夏至未至第一集插曲是什么?夏至未至插曲曝光。夏至未至是由陈学冬、郑爽、白敬亭等联袂主演的青春偶像剧,昨晚已经开播了&#xff0c;那么第一集的插曲是什么呢?和小编一起去看看吧!夏至未至第一集插曲《那些花儿》那片笑…

了解如何在20分钟内创建您的第一个Angular应用

Angular is a JavaScript framework, created my Misko Hevery and maintained by Google. It’s an MVC (Model View Vontroller). You can visit the official page to learn more about it.Angular是一个JavaScript框架&#xff0c;创建了我的Misko Hevery&#xff0c;并由G…

js闭包使用

闭包就是在一个函数内定义一个内部函数 并返回内部函数 function f1(){var a1; addfunction(){aa1;} function f1Sub(){ console.log(a); } return f1Sub; } var ff1();f();add();f();var f2f1();add();f(); 输出为 1 2 2 可以看到输出结果 定义f2后执行add 这时 f2的add函数已…