Cubemap скайбокс из сцены шейдера

Проблема, пожалуй, простая: не могу понять, как достать скайбокс и применить его к моему шейдеру.

Я думаю, что близко, но как мне убрать скайбокс со сцены??

mygameobjec.GetComponent<Renderer>().material.SetTexture("_SkyReflection",Skybox.material.Texture??);

Спасибо


person Alberto    schedule 12.10.2019    source источник


Ответы (1)


Попробуйте RenderSettings.skybox.mainTexture.

https://docs.unity3d.com/ScriptReference/RenderSettings-skybox.html

Совет: также можно получить доступ к текущей среде отражения внутри шейдера из глобального шейдера с именем unity_SpecCube0. Вот функция, которую я часто использую в своих шейдерах:

// Returns the reflection color given a normal and view direction.
inline half3 SurfaceReflection(half3 viewDir, half3 worldNormal, half roughness) {

    half3 worldRefl = reflect(-viewDir, worldNormal);
    half r = roughness * 1.7 - 0.7 * roughness;
    float4 reflData = UNITY_SAMPLE_TEXCUBE_LOD(
        unity_SpecCube0, worldRefl, r * 6
    );

    return DecodeHDR (reflData, unity_SpecCube0_HDR);
}
person Kalle Halvarsson    schedule 14.10.2019