文章目录
自学Raymarching汇总:
Unity Shader - Ray Marching Study Summary - 学习汇总
- Project
前一篇得到了表面的法线后,那么光照着色就不成问题了。
核心代码
...
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
关注
打赏
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【Vue】走进Vue框架世界
- 【云服务器】项目部署—搭建网站—vue电商后台管理系统
- 【React介绍】 一文带你深入React
- 【React】React组件实例的三大属性之state,props,refs(你学废了吗)
- 【脚手架VueCLI】从零开始,创建一个VUE项目
- 【React】深入理解React组件生命周期----图文详解(含代码)
- 【React】DOM的Diffing算法是什么?以及DOM中key的作用----经典面试题
- 【React】1_使用React脚手架创建项目步骤--------详解(含项目结构说明)
- 【React】2_如何使用react脚手架写一个简单的页面?