OpenGL光和材质
光照模型
把光照系统分为3部分 光源、材质、光照环境
将光线与对性之间的作用分为3类
- 镜面反射表面
- 漫反射表面
- 半透明表面
法线向量
这段话很重要 根据光的反射定律,由光的入射方向决定光的反射方向,对于指定的物体,指定了光源,即可计算出光的反射方向,但是不会根据多边形的顶点来计算出这些法线,OpenGL中,为了实现光照效果,我们需要在代码中为每一个定点赋法线
指定法线
类似于指定颜色,指定一个颜色值,也可以指定一个法线值,所有的定点都是用这个法线向量
glNormal(GLfloat x,GLfloat y,GLfloat z); //指定法线
光源
opengl至少支持8个光源
glEnable(GL_LIGHT0); //0号光源
glLight(参数); //三个参数,第一个参数指明是哪个光源、第二个参数指明设置该光源的什么属性,第三个参数设置该属性的属性值
GL_AMBIENT、GL_DIFFUSE、GL_SPECULAR这三个参数表示了光源所发出的光的反射特性
GL_POSITION表示光源所在的位置
GL_SPOT_DIRECTION、GL_SPOT_EXPONENT、GL_SPOT_CUTOFF表示将光源作为聚光灯使用,
GL_CONSTANT_ATTENUATION、GL_LINEAE_ATTENUATION、GL_QUANRATIC_ATTENUATION这三个参数表示了官员所发出的光线的直线传播特性
控制材质
glMateria(); //三个参数,第一个指明哪一面的属性、第二个设置什么属性、第三个设置该属性的值
GL_BACK、GL_FRONT_AND_BACK表示正面或者反面
GL_AMBIENT、GL_DIFFUSE、GL_SPECULAR与光源的参数类似
GL_SHININESS 镜面系数
GL_EMISSION该材质微微向外发射光线,微弱不影响其他物体
GL_COLOR_INDEXS索引模式下使用
选择光照模型
glLightMode(); //两个参数,第一个表示要设置的项目,第二个参数表示要设置成的值
GL_LIGHT_MODEL_AMBIENT表示全局环境光线强度,由四个值组成
GL_LIGHT_MODEL_LOCAL_VIEWER表示是否在近处观看,若是,则设置GL_TRUE,否则即GL_FALSE
GL_LIGHT_MODEL_COLOR_CONTROL表示颜色计算方式,如果设置GL_SINGLE_COLOR,表示按通常顺序操作,先计算光照,再计算纹理;如果设置为GL_SEPARATE_SPECULAR_COLOR表示将GL_SPECULAR属性分离出来,先计算光照的其他部分,待纹理操作完成后再计算GL_SPECULAR。后者可以使画面效果更为逼真
GL_LIGHT_MODEL_TWO_SIDE 表示是否执行双面光照计算,如果设置为GL_TRUE 表示不仅将根据法线向量计算正面的光照,也将法线向量翻转并计算背面的光照。
glEnable(GL_LIGHTING); //打开光照处理功能
glDisable(GL_LIGHTING); //关闭处理功能
以上为小编参考百度文库总结的,需要查看详细内容的小编附上链接,
希望没有触及版权问题,有的话告诉一下小编哈,刚入门多有不懂
https://wenku.baidu.com/view/8096a02bcfc789eb172dc892.htm
OpenGL光和材质相关推荐
- 从零开始学习OpenGL ES之五 – 材质
从零开始学习OpenGL ES之五 – 材质 作者: iPhoneGeek 爱疯极客 09-Jan-10 iPhone Development 浏览次数: 411 | 评论 ↓ Tweet Shar ...
- OpenGL material light材质灯光的实例
OpenGL material light材质灯光 先上图,再解答. 完整主要的源代码 源代码剖析 先上图,再解答. 完整主要的源代码 #include <glad/glad.h> #in ...
- OpenGL学习之材质RGB值和光源RGB值关系
材质的颜色与光源的颜色有些不同.对于光源,R.G.B值等于R.G.B对其最大强度的百分比.若光源颜色的R.G.B值都是1.0,则是最强的白光:若值变为0.5,颜色仍为白色,但强度为原来的一半,于 ...
- 我的世界手机版javaui材质包_PBR基于物理的光照纹理包绘制-教你做我的世界光追材质包(理论篇)...
此文原文链接: https://www.nvidia.com/en-us/geforce/guides/minecraft-rtx-texturing-guide/ 此文已发布到个人博客:https: ...
- 渲染中的光和材质的数学魔法
MainLight:Dominant Light 间接光(Ambient).GI环境光近视: AmibentLight:Low-frequency of irradiance sphere distr ...
- OpenGL材质和光照(转)part2
10.4.3 材质RGB值和光源RGB值的关系 材质的颜色与光源的颜色有些不同.对于光源,R.G.B值等于R.G.B对其最大强度的百分比.若光源颜色的R.G.B值都是1.0,则是最强的白光:若值变为0 ...
- 计算机图形学の三维几何变换材质光照(OpenGL)
OpenGL三维几何变换 & 材质光照 显示效果: 源码: #define NDEBUG #ifndef GLUT_DISABLE_ATEXIT_HACK #define GLUT_DISAB ...
- OpenGL显示列表
OpenGL显示列表(Display List)是由一组预先存储起来的留待以后调用的OpenGL函数语句组成的,当调用这张显示列表时就依次执行表中所列出的函数语句.前面内容所举出的例子都是瞬时给出函数 ...
- openGL基础光照“ADS”( Phone光照模型)(一)
openGL系列文章目录 文章目录 openGL系列文章目录 前言 一.光照模型 二.光源 材质 ADS 光照计算 ADS 光照计算 参考 前言 光照以不同的方式影响着我们世界的外观,有时甚至是很戏剧 ...
最新文章
- MySQL 中的运算符
- 题目1256:找出两个只出现了一次的数字
- python常见面试题:m1={‘a‘:1,‘b‘:2,‘c‘:1} 将同样的value的key集合在list里,输出{1:[‘a‘,‘c‘],2:[‘b‘]}
- k8s kubebuilder系列开发 — 编写自定义资源和Reconciliation循环
- 卡牌大师怎么玩_用卡牌大师如何上分
- Elasticsearch template(待续...)
- FBString分析与使用
- 生产活动目录不宜做快照,克隆,直接备份VMDK;
- C++项目中编译部分C的代码
- 常见ActiveX控件下载大全
- java程序设计大赛acm_参加ACM程序设计大赛,对C的掌握程度要多深??
- 《老路用得上的商学课26—30》经济模式
- P1262 间谍网络+Trajan 缩点(有向图)
- 在cmd中用pip安装myqr时遇到的报错问题;
- 苹果手机代数_苹果一共几代?
- 毕达哥拉斯定理a^2 + b^2 =c^2
- 人人网发布QQ劝架补丁 同时兼容QQ及360
- CheckBox和CheckBoxList练习
- 网桥VLAN GROUP组
- OpenCV图像处理 空间域图像增强(图像锐化 1 基于拉普拉斯算子)