Трайс - Врай Элемент Состав - PullRequest
0 голосов
/ 22 апреля 2019

Я использую Three.js для рендеринга модели, и я хочу использовать пользовательский шейдер для составления нескольких визуализированных изображений VRay.

Вот что я получаю в Photoshop

"*" = Photoshop Multiply

"+" = Photoshop Linear Dodge Add

Это изображение = (Diffuse * GlobalIllumination) + (Diffuse * Lighting) + Specular Comp

См. Ниже элементы рендеринга

диффузный diffuse GlobalIllumination GI Осветительные приборы Lighting зеркальный Specular

Вот то, что я получаю за три секунды ... Не совсем идеально

ThreeJS

Вот мой фрагментный шейдер


"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;",

        "}"`

Я знаю, что это очень тяжелый имидж. Я пишу, чтобы донести этот вопрос до всех, кто мог бы иметь опыт / успех с такими вещами.

...