Size: a a a

pro.graphon (and gamedev)

2020 July 03

D

Dadaskis in pro.graphon (and gamedev)
Columbus Utrigas
Тимур это делал для воды в ларе, можешь у него спиздить
Научи пиздить у Тимура

https://github.com/XProger/OpenLara/blob/master/src/shaders/water_caustics.hlsl


float4 main(VS_OUTPUT In) : COLOR0 {
   float rOldArea = length(ddx(In.oldPos)) * length(ddy(In.oldPos));
   float rNewArea = length(ddx(In.newPos)) * length(ddy(In.newPos));
   rNewArea = max(rNewArea, 0.00002); // WebGL NVIDIA workaround >_<
   float value = saturate(rOldArea / rNewArea * 0.2);
   return float4(value, 0.0, 0.0, 0.0);
}


Кто такие ddx и ddy в пиксельном шейдере?
источник

D

Dadaskis in pro.graphon (and gamedev)
Dadaskis
Научи пиздить у Тимура

https://github.com/XProger/OpenLara/blob/master/src/shaders/water_caustics.hlsl


float4 main(VS_OUTPUT In) : COLOR0 {
   float rOldArea = length(ddx(In.oldPos)) * length(ddy(In.oldPos));
   float rNewArea = length(ddx(In.newPos)) * length(ddy(In.newPos));
   rNewArea = max(rNewArea, 0.00002); // WebGL NVIDIA workaround >_<
   float value = saturate(rOldArea / rNewArea * 0.2);
   return float4(value, 0.0, 0.0, 0.0);
}


Кто такие ddx и ddy в пиксельном шейдере?
В common.hlsl их нет, откуда они
источник

S

Stas in pro.graphon (and gamedev)
Dadaskis
Научи пиздить у Тимура

https://github.com/XProger/OpenLara/blob/master/src/shaders/water_caustics.hlsl


float4 main(VS_OUTPUT In) : COLOR0 {
   float rOldArea = length(ddx(In.oldPos)) * length(ddy(In.oldPos));
   float rNewArea = length(ddx(In.newPos)) * length(ddy(In.newPos));
   rNewArea = max(rNewArea, 0.00002); // WebGL NVIDIA workaround >_<
   float value = saturate(rOldArea / rNewArea * 0.2);
   return float4(value, 0.0, 0.0, 0.0);
}


Кто такие ddx и ddy в пиксельном шейдере?
Приращения, не?
источник

CU

Columbus Utrigas in pro.graphon (and gamedev)
Dadaskis
Научи пиздить у Тимура

https://github.com/XProger/OpenLara/blob/master/src/shaders/water_caustics.hlsl


float4 main(VS_OUTPUT In) : COLOR0 {
   float rOldArea = length(ddx(In.oldPos)) * length(ddy(In.oldPos));
   float rNewArea = length(ddx(In.newPos)) * length(ddy(In.newPos));
   rNewArea = max(rNewArea, 0.00002); // WebGL NVIDIA workaround >_<
   float value = saturate(rOldArea / rNewArea * 0.2);
   return float4(value, 0.0, 0.0, 0.0);
}


Кто такие ddx и ddy в пиксельном шейдере?
Это дефолтные функции
источник

D

Dadaskis in pro.graphon (and gamedev)
Dadaskis
В common.hlsl их нет, откуда они
Колумбус сорян за пинг, это я дебил не чекнул доки, подумав что это Тимур хуйнул
https://docs.microsoft.com/en-us/windows/win32/direct3dhlsl/dx-graphics-hlsl-ddx
источник

D

Dadaskis in pro.graphon (and gamedev)
Columbus Utrigas
Это дефолтные функции
Да, сорян, тупанул
источник

S

Stas in pro.graphon (and gamedev)
Dadaskis
Колумбус сорян за пинг, это я дебил не чекнул доки, подумав что это Тимур хуйнул
https://docs.microsoft.com/en-us/windows/win32/direct3dhlsl/dx-graphics-hlsl-ddx
За последние можно и варн отхватить)
источник

CU

Columbus Utrigas in pro.graphon (and gamedev)
Dadaskis
Колумбус сорян за пинг, это я дебил не чекнул доки, подумав что это Тимур хуйнул
https://docs.microsoft.com/en-us/windows/win32/direct3dhlsl/dx-graphics-hlsl-ddx
Так и не пойму что за дериватив
источник

CU

Columbus Utrigas in pro.graphon (and gamedev)
Вроде размер пикселя на экране
источник

CU

Columbus Utrigas in pro.graphon (and gamedev)
В диапазоне 0..1
источник

D

Dadaskis in pro.graphon (and gamedev)
Columbus Utrigas
В диапазоне 0..1
Вау, если это так, то такая хорошая вещь из коробки. В GLSL же для этого упарываются и в юниформе разрешение передают дабы это высчитать
источник

CU

Columbus Utrigas in pro.graphon (and gamedev)
Dadaskis
Вау, если это так, то такая хорошая вещь из коробки. В GLSL же для этого упарываются и в юниформе разрешение передают дабы это высчитать
В GLSL есть ddx
источник

VK

Vitaliy ◀️TriΔng3l▶️... in pro.graphon (and gamedev)
Columbus Utrigas
А если по перспективе будет?
Если координаты вершин побитово одинаковые, так, что и интерполяция в них будет одинаковая
источник

VK

Vitaliy ◀️TriΔng3l▶️... in pro.graphon (and gamedev)
Обычный multipass, короче
источник

VK

Vitaliy ◀️TriΔng3l▶️... in pro.graphon (and gamedev)
Columbus Utrigas
В GLSL есть ddx
dFdx, dFdy и fwidth, точнее
источник

D

Dadaskis in pro.graphon (and gamedev)
Vitaliy ◀️TriΔng3l▶️ Kuzmin
dFdx, dFdy и fwidth, точнее
Постоянно стрёмно от таких именований становится
источник

VK

Vitaliy ◀️TriΔng3l▶️... in pro.graphon (and gamedev)
Columbus Utrigas
Так и не пойму что за дериватив
Чтобы ширина постоянной оставалась?
источник

VK

Vitaliy ◀️TriΔng3l▶️... in pro.graphon (and gamedev)
Dadaskis
Постоянно стрёмно от таких именований становится
dF(x)/dx
источник

CU

Columbus Utrigas in pro.graphon (and gamedev)
Vitaliy ◀️TriΔng3l▶️ Kuzmin
Чтобы ширина постоянной оставалась?
Ширина чего?
источник

VK

Vitaliy ◀️TriΔng3l▶️... in pro.graphon (and gamedev)
Columbus Utrigas
Ширина чего?
А, не, отношение площадей чего-то на экране (при этом сами площади не важны, важно лишь отношение)
источник