Показать сообщение отдельно
Старый 25.11.2012, 20:20   #6
ІГРОГРАЙКО
ПроЭктировщик
 
Аватар для ІГРОГРАЙКО
 
Регистрация: 20.06.2009
Адрес: Україна
Сообщений: 152
Написано 10 полезных сообщений
(для 24 пользователей)
Стрелка Ответ: Как создать туман с помощью GLSL (WebGL)

Уже познал!

Чтобы сделать туман на WebGL достаточно взять и переписать фрагментарный шейдер:
#ifdef GL_ES
precision highp float;
#endif

varying vec2 vTextureCoord;
varying vec3 vPosition;

vec4 fColor;
vec4 Fogcolor = vec4(0.0,0.0,0.0,1.0);
float density = 0.0005;
const float LOG2 = 1.442695;
float fogFactor;
float z;

uniform sampler2D SamplerNZ;

void main(void) {

	fColor = texture2D(SamplerNZ, vTextureCoord);
        z = gl_FragCoord.z / gl_FragCoord.w;
	fogFactor = exp2( -density * density * z * z * LOG2 );
	fogFactor = clamp(fogFactor, 0.0, 1.0);
        
        gl_FragColor = mix(Fogcolor, fColor, fogFactor );
}
__________________
Blitz3D, XNA, WebGL, OpenGL, Unity3D
PC: ASUS A55VM Core i3 (2.4Ghz), 6 Gb RAM, Nvidia GF 630M GT 2Gb
(Offline)
 
Ответить с цитированием