您当前的位置: 首页 >  ar

Jave.Lin

暂无认证

  • 1浏览

    0关注

    704博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

Unity Shader - Ray Marching - T4 - LightingSurface

Jave.Lin 发布时间:2020-04-25 15:43:07 ,浏览量:1

文章目录
  • Project
自学Raymarching汇总: Unity Shader - Ray Marching Study Summary - 学习汇总

前一篇得到了表面的法线后,那么光照着色就不成问题了。

核心代码


...
float4 _LightInfo;              // 点光源信息:.xyz = pos, .w = 1/range
...
fixed4 getColor(v2f i) {
    float3 ori = i.ray;                 // 射线起点
    float3 dir = normalize(i.ray);      // 射线方向
    float3 pos;                         // 当前步进到的位置
    float dist;                         // 当前步进到的最近距离
    float d;                            // 当前最近距离
    float far = _ProjectionParams.z;    // far

    ori += _WorldSpaceCameraPos.xyz;    // 偏移,加上相机位置
    pos = ori;                          // 从起点出发

    float3 lightPos = _LightInfo.xyz;   // 灯光位置
    float lightRange = _LightInfo.w;    // 灯光范围
    float rangeEnable = step(EPSILON, lightRange);

    UNITY_LOOP
    for (int it = 0; it             
关注
打赏
1664331872
查看更多评论
0.0395s