OpenGL 材质效果 (转)

原创 2007年10月08日 11:53:00
 
OpenGL - Material (材质)
来自:86VR | 作者:IceSharK - PP.Poet | 时间:2004-10-10 |  点击:
在真实世界中,白色物体在绿光照射下看起来是绿色而不是白色,红色物体在绿光照射下看起来是黑色,而有的同样颜色的物体在同样的光照下亮度却不同,这都是由物体的材质不同造成的。

 

场景中物体的颜色取决于物体材质的反射和透射属性。

 

在忽略其他效果的情况下,若光源颜色为( LR , LG , LB ),材质颜色为( MR , MG , MB ),最终颜色为( LR*MR , LG*MG , LB*MB )。若有两束光,分别为( R1 , G1 , B1 )和( R2 , G2 , B2 ),材质颜色为( MR , MG , MB ),最终颜色为( (R1+R2)*MR , (G1+G2)*MG , (B1+B2)*MB )。

 

OpenGL中物体的材质属性包括:

 

环境反射
漫反射
镜面反射
辐射 ( 关于 辐射 参见 C# - OpenGL - Lighting (光照) 5 辐射光)

 

材质的定义与光源的定义类似。其函数为:

 

void glMaterial{if}[v]( GLenum face , GLenum pname , TYPE param );

 

face 定义GL_FRONT(正面)或GL_BACK(背面)或GL_FRONT_AND_BACK(双面)
pname 定义特定的材质
param 定义材质的具体数值

 

 

 


GL_SHINESS 取值范围 [ 0.0 , 128.0 ]
数值越大,镜面高光的范围越小、亮度越大
数值越小,镜面高光的范围越大、亮度越小

 

材质 - 示例

 

程序截图
设置 镜面反射 前后

 

 

 

 

 

使材质颜色追踪当前颜色

 

函数原型 void glColorMaterial( GLenum face , GLenum mode );

 

glColorMaterial( GL_FRONT , GL_DIFFUSE ); // 使环境材质颜色追踪当前颜色
glEnable( GL_COLOR_MATERIAL ); // 启用 材质颜色追踪当前颜色

 

当需要改变场景中单个材质时,建议调用glColorMaterial();
当需要改变多个材质参数时,建议调用glMaterial*();
当不需要材质颜色追踪当前颜色时,要记得要关闭它,以避免相应的开销。

 

使材质颜色追踪当前颜色 - 示例

 

程序截图

 

 

 


【OpenGL】Shader实例分析(十)- 钻石效果

好久没有写文章了,赶紧补几篇。最近研究了一个玻璃折射的效果(用在砖石上),虽然没有达到最满意的效果,还是先分享出来,待以后有更好的想法再补充。 先看效果吧: 这里面有两个效果,左边是unity的免...
  • stalendp
  • stalendp
  • 2016年03月01日 21:34
  • 7839

openGL的光照与材料(一)

真实感图形绘制是计算机图形学的一个重要组成部分,它综合利用数学、物理学、计算机科学和其它科学知识在计算机图形设备上生成象彩色照片那样的具有真实感的图形。一般说来,用计算机在图形设备上生成真实感图形必须...
  • chenxiao88957478
  • chenxiao88957478
  • 2016年02月29日 10:35
  • 1102

OpenGL中的光照、材质等属性

OpenGL在处理光照时把光照系统分为三部分,分别是光源、材质和光照模型。 光源、材质和光照模式都有各自的属性,尽管属性种类繁多,但这些属性都只用很少的几个函数来设置。 使用glLight*函数可...
  • wang15061955806
  • wang15061955806
  • 2015年10月28日 15:05
  • 4154

一个用opengl实现的带有光照和材质效果的立方体

  • 2016年04月29日 16:36
  • 5KB
  • 下载

opengl es 光照效果,材质设置

之前讲到了opengl es基本图形的绘制,变换,下面我们来看看光照和材质的应用。              光照模型:              为图形添加光照,就能使图形看上去有立体效果。在 Op...
  • u012761326
  • u012761326
  • 2017年02月23日 16:20
  • 999

IOS Opengl ES 用多光源实现材质,阴影,高光效果

在Opengl ES 1.0 中, 要实现材质效果,往往需要光源的设置, 如果环境光和漫反射光强了,材质效果难以体现, 如果环境光和漫反射光弱了,材质就暗了 实现阴影效果,可以放置一...
  • aiyongyyy
  • aiyongyyy
  • 2012年10月31日 12:15
  • 1366

OpenGL材质和光照(转)

真实感图形绘制是计算机图形学的一个重要组成部分,它综合利用数学、物理学、计算机科学和其它科学知识在计算机图形设备上生成象彩色照片那样的具有真实感的图形。一般说来,用计算机在图形设备上生成真实感图形必须...
  • Sniffer_Wang
  • Sniffer_Wang
  • 2011年04月29日 09:57
  • 5007

OpenGL材质和光照(转)part1

真实感图形绘制是计算机图形学的一个重要组成部分,它综合利用数学、物理学、计算机科学和其它科学知识在计算机图形设备上生成象彩色照片那样的具有真实感的图形。一般说来,用计算机在图形设备上生成真实感图形必须...
  • ycc09108066
  • ycc09108066
  • 2011年05月24日 15:39
  • 624

OpenGL材质和光照(转)part2

10.4.3 材质RGB值和光源RGB值的关系  材质的颜色与光源的颜色有些不同。对于光源,R、G、B值等于R、G、B对其最大强度的百分比。若光源颜色的R、G、B值都是1.0,则是最强的白光;若值变为...
  • ycc09108066
  • ycc09108066
  • 2011年05月24日 15:35
  • 2153

OpenGL 实验七 光照与材质练习

  • 2017年12月12日 20:50
  • 10.18MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:OpenGL 材质效果 (转)
举报原因:
原因补充:

(最多只允许输入30个字)