2.0 添加场景雾之后 粒子特效离原点越远 效果越淡

代码添加场景雾:
 
//添加3D场景
GamePanel.curScene = Laya.loader.getRes("res/LayaScene_wu/Conventional/wu.ls");
Laya.stage.addChildAt(GamePanel.curScene, 0);
//开启雾化效果
GamePanel.curScene.enableFog = true;
//设置雾化的颜色
GamePanel.curScene.fogColor = new Laya.Vector3(0.59, 0.59, 0.59);
//设置雾化的起始位置,相对于相机的距离
GamePanel.curScene.fogStart = 1;
//设置雾化最浓处的距离。
GamePanel.curScene.fogRange = 100;
然后导入ls文件
移动小球模型和粒子特效还有摄像头
离原点Laya.Vector3(0,0,0) 的距离是66时候的效果如下图

66.png

 
距离原点88时候的效果 如下图(变淡了)

88.png

 
距离原点98的时候的效果  如下图 (几乎看不到了)

98.png

 
已邀请:
ps="#ifdef HIGHPRECISION\n precision highp float;\n#else\n precision mediump float;\n#endif\n\nvarying float v_Discard;\nvarying vec4 v_Color;\nvarying vec2 v_TextureCoordinate;\nuniform sampler2D u_texture;\nuniform vec4 u_Tintcolor;\n\n#ifdef RENDERMODE_MESH\n  varying vec4 v_MeshColor;\n#endif\n\n#ifdef FOG\n   varying vec3 v_PositionWorld;\n uniform vec3 u_CameraPosition;\n    uniform float u_FogStart;\n uniform float u_FogRange;\n #ifdef ADDTIVEFOG\n #else\n     uniform vec3 u_FogColor;\n  #endif\n#endif\n\n\nvoid main()\n{  \n  #ifdef RENDERMODE_MESH\n        gl_FragColor=v_MeshColor;\n #else\n     gl_FragColor=vec4(1.0); \n  #endif\n        \n  #ifdef DIFFUSEMAP\n     if(v_Discard!=0.0)\n            discard;\n      #ifdef TINTCOLOR\n          gl_FragColor*=texture2D(u_texture,v_TextureCoordinate)*u_Tintcolor*2.0*v_Color;\n       #else\n         gl_FragColor*=texture2D(u_texture,v_TextureCoordinate)*v_Color;\n       #endif\n    #else\n     #ifdef TINTCOLOR\n          gl_FragColor*=u_Tintcolor*2.0*v_Color;\n        #else\n         gl_FragColor*=v_Color;\n        #endif\n    #endif\n    \n  #ifdef FOG\n        vec3 toEye=u_CameraPosition-v_PositionWorld;\n      float toEyeLength=length(toEye);\n      toEye/=toEyeLength;\n       \n      float lerpFact=clamp((toEyeLength-u_FogStart)/u_FogRange,0.0,1.0);\n        #ifdef ADDTIVEFOG\n     #else\n \n       #endif\n    #endif\n}";
把这一行的ps代码替换成这个,就好了,删除雾对物资的影响

该问题目前已经被锁定, 无法添加新回复

商务合作
商务合作