Я использую Three.js для рендеринга модели, и я хочу использовать пользовательский шейдер для составления нескольких визуализированных изображений VRay.
Вот что я получаю в Photoshop
"*" = Photoshop Multiply
"+" = Photoshop Linear Dodge Add
Это изображение = (Diffuse * GlobalIllumination) + (Diffuse * Lighting) + Specular
См. Ниже элементы рендеринга
диффузный
GlobalIllumination
Осветительные приборы
зеркальный
Вот то, что я получаю за три секунды ... Не совсем идеально
Вот мой фрагментный шейдер
"uniform sampler2D overlay;",
"uniform sampler2D VrayRawDiffuseFilter;",
"uniform sampler2D VrayRawGIFilter;",
"uniform sampler2D VrayRawLightingFilter;",
"uniform sampler2D VraySpecularFilter;",
"uniform sampler2D VRayBackground;",
"varying vec2 vUv;",
"void main() {",
"vec4 overlay = texture2D(overlay, vUv);",
"vec4 diffuse = texture2D(VrayRawDiffuseFilter, vUv);",
"vec4 VrayRawGIFilter = texture2D(VrayRawGIFilter, vUv);",
"vec4 VrayRawLightingFilter = texture2D(VrayRawLightingFilter, vUv);",
"vec4 VraySpecularFilter = texture2D(VraySpecularFilter, vUv);",
"vec4 diffuseGI = diffuse*VrayRawGIFilter;",
"vec4 diffuseLighting = diffuse*VrayRawLightingFilter;",
"vec4 comp = diffuseGI+diffuseLighting+VraySpecularFilter;",
"gl_FragColor = comp;",
"gl_FragColor.a = 1.0;",
"}"`
Я знаю, что это очень тяжелый имидж.
Я пишу, чтобы донести этот вопрос до всех, кто мог бы иметь опыт / успех с такими вещами.