Shaderlab-10chapter-立方体纹理、玻璃效果
阅读原文时间:2023年07月11日阅读:1
  • window - Lighting - skyMaterial

  • 创建mat,shader选自带的6 side shader

  • 确保相机选skybox

  • 如果某个相机需要覆盖,添加skyBox组件。

  • 原理

    1)求反射方向向量。(用refract函数,参数:入射向量、法线向量)

    2)texCUBE采样。(方向不需要归一化)

  • 原理

    1)求折射方向向量。(用refract函数,参数:入射向量、法线向量、折射率。)

    2)texCUBE采样。(方向不需要归一化)

  • 代码

    o.worldRefract = refract(-o.viewDir,o.worldNormal ,_Ratio);
    fixed3 color_refract = texCUBE(_CubeMap,i.worldRefract).rgb;

  • 原理 (近处的反射少,远处反射多)

    1)公式(近似):F = Fscale + (1-Fscale)(1-v·n)^5

  • 利用fresnel做边缘发光,代码

    fixed fresnel = _FresnelScale + (1 - _FresnelScale) * pow(1 - dot(viewDir, worldNormal), _PowVal);//涅菲尔公式:_PowVal =5
    _ColorFresnel * saturate(fresnel)

    //Transparent确保不透明物体可以渲染,RenderType为了在使用着色器替换时,该物体可以在需要时被正确渲染。这通常发生在我们需要得到相机的深度和法线纹理时。
    Tags { "Queue"="Transparent" "RenderType"="Opaque" }

手机扫一扫

移动阅读更方便

阿里云服务器
腾讯云服务器
七牛云服务器

你可能感兴趣的文章