CHEN Yihui 5 years ago
parent
commit
4148ecbf9d
2 changed files with 5 additions and 4 deletions
  1. 3 3
      readme.txt
  2. 2 1
      vshader71.glsl

+ 3 - 3
readme.txt

@@ -29,9 +29,9 @@
     在host端维护飞机坐标x,y,z以及观察的方向theta,phi,侧看的角度tau
     在cpu端用lookat和Frustum计算model_view和projection,使用uniform传给gpu
   物体绘制
-    设置了物体,物体没有纹理,没有颜色,
+    设置了物体cow,把坐标缩小到1/50,物体没有纹理,没有颜色,
     物体的纹理坐标都设成一个特殊坐标,
-    在片段着色器中增加判断,如果纹理坐标是特殊坐标,则涂特殊的颜色
+    在片段着色器中增加判断(区分地形和物体),如果纹理坐标是特殊坐标,则涂特殊的颜色
   光照
     顶点法向用cpu预先计算,存在glBuffer里,
     顶点光照在顶点着色器里计算,
@@ -40,7 +40,7 @@
     使用uniform变量,传输是否有雾(int),及眼睛位置(vec3)到顶点着色器,
     在顶点着色器里根据距离(的平方)计算雾化参数(使用指数),若没雾直接输出雾化参数1
-    在片段着色器里计算雾化效果
+    在片段着色器里计算雾化效果,雾的颜色写在片段着色器里
   模型的数据结构,效率和交互
     对于顶点,纹理坐标,纹素,颜色的数据上面已经说明
     对于碰撞检测使用cpu计算,在二维数组[x][y]中存放地形高度z,

+ 2 - 1
vshader71.glsl

@@ -19,11 +19,12 @@ void main() {
 
   // fog
   if (foggy > 0) {
+    // distance
     float dis = (vPosition.x - eye_pos.x) * (vPosition.x - eye_pos.x)
               + (vPosition.y - eye_pos.y) * (vPosition.y - eye_pos.y)
               + (vPosition.z - eye_pos.z) * (vPosition.z - eye_pos.z);
     fog_factor = exp(-dis);
-  } else {
+  } else { // not foggy
     fog_factor = 1.0;
   }
 }