OpenGL ES 光照(一)

Opengl es 基本光照

Opengl es 中将光照分成了3种组成元素(3个通道),环境光、散射光以及镜面光。
这里写图片描述

环境光(Ambient):
    物体周围的光线,从四面八方照射到物体上,全方位360度都是均匀的光,不依赖于光源位置,而且没有方向性。环境光不但入射均匀,反射各向也均匀。
数学模型公式:

环境光照射结果 = 材质的反射系数 × 环境光强度

这里写图片描述

顶点着色器
#version 300 es
uniform mat4 uMVPMatrix; //总变换矩阵
in vec3 aPosition;  //顶点位置
out vec3 vPosition;//用于传递给片元着色器的顶点位置
out vec4 vAmbient;//用于传递给片元着色器的环境光分量
void main()     
{         
   //根据总变换矩阵计算此次绘制此顶点位置                 
   gl_Position = uMVPMatrix * vec4(aPosition,1); 
   //将顶点的位置传给片元着色器
   vPosition = aPosition;   
//将环境光强度传给片元着色器
   vAmbient = vec4(0.15,0.15,0.15,1.0);
}    
片段着色器
#version 300 es
precision mediump float;
in vec3 vPosition; //接收从顶点着色器过来的顶点位置
in vec4 vAmbient;//接收从顶点着色器过来的环境光强度
out vec4 fragColor;
void main()                         
{
   vec4 finalColor=vec4(物体颜色);
    //根据环境光强度计算最终片元颜色值
   fragColor=finalColor*vAmbient;
} 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值