luckyleo769
Я из Воронежа
innuendo
Еее
innuendo
> Потом правда рендер прогреры бегают по отцам с вопросом как же туман сделать
Из глубины посчитать расстояние и подставить в экспоненту, чего там спрашивать-то?
Хотя учитывая, какую хрень типично делают в играх вместо тумана, может ты и прав. Или кто это говно, зависящее от поворота камеры, делал — это и есть те отцы, о которых ты говоришь? Ну тогда нафиг их, лучше вообще тогда не спрашивать, а то опять какую-нибудь кривую фиговину дадут.
Имбирная Ведьмочка
Это старые фантомные боли :)
Имбирная Ведьмочка
> Из глубины посчитать расстояние и подставить в экспоненту, чего там спрашивать-то?
Где скачать экспоненту?
barbanel
Торрент же, в паке с опенгл
Имбирная Ведьмочка
Знаешь прикол с туманом с вторыми и третьями шейдерами? Я в спешке нарвался и получил люлей;)
innuendo
> Знаешь прикол с туманом с вторыми и третьями шейдерами? Я в спешке нарвался и получил люлей;)
я не знаю, точнее, на гл с шейдером тумана проблем никогда не было. Расскажешь?
barnes
В sm20 есть Фог интерполятор... В sm30 нудно вручную
Это дх девять если что
innuendo
> Это дх девять если что
а, дх9, ясно тогда) Не у меня все ручками, по простому....
//!#include "include/global.inc"
layout (bindless_sampler, location = U_TMU0) uniform sampler2DRect u_screenMap;
layout (bindless_sampler, location = U_TMU1) uniform sampler2DRect u_depthMap;
layout (location = U_PARAM_INT_0) uniform int u_fogType; // exp1 and exp2
layout (location = U_PARAM_VEC4_0) uniform vec4 u_fogColor; // rgb and density
layout (location = U_PARAM_FLOAT_0) uniform float u_fogBias; // bias
void main(void){
vec3 fogColor, screenMap;
float fogCoord, fogFactor, density, depth;
screenMap = texture(u_screenMap, gl_FragCoord.xy).rgb;
depth = texture(u_depthMap, gl_FragCoord.xy).x; // read linear depth
if(depth > 8192.0){ // its sky
fragData = vec4(screenMap, 1.0);
return;
}
fogCoord = abs(gl_FragCoord.z / gl_FragCoord.w) / (depth * 0.5 + 0.5);
fogCoord += u_fogBias;
fogColor = u_fogColor.rgb;
density = 100.0 / u_fogColor.a;
if(u_fogType == 0)
fogFactor = exp(-density * fogCoord); //exp1
else
fogFactor = exp(-pow(density * fogCoord, 2.0)); //exp2
fragData.rgb = mix(screenMap, fogColor, fogFactor);
fragData.w = 1.0;
}Глсл ..фу фу фу
Deferred что-ли?
barnes
> fogCoord = abs(gl_FragCoord.z / gl_FragCoord.w) / (depth * 0.5 + 0.5);
> fogCoord += u_fogBias;
Типичный туман курильщика.
Туман здорового человека считает дистанцию до наблюдателя по эвклиду, а не только проекцию на Z
MrShoor
Ну да , вся тридэ это фейк
innuendo
> Глсл ..фу фу фу
у меня на hlsl аллергия как и на дх.
innuendo
> Deferred что-ли?
фуллскрин постпроцесс
MrShoor
> Типичный туман курильщика.
кто не курит и не пьет - тот на органы пойдет.
innuendo
> Ну да , вся тридэ это фейк
согласен, все прах и тлен.
barnes
И зачем если форвард отдельный пасс?
Тема в архиве.