- 博客(3)
- 收藏
- 关注
原创 【个人学习记录-GPU实例化草地渲染多光源支持】
概括来说的话,代码中首先使用GetAdditionalLightsCount获取片元额外光的数量,LIGHT_LOOP_BEGIN……LIGHT_LOOP_END遍历每个额外光,GetAdditionalLight获取额外光对象,并将光加进片元中。下文是URP的Light.hlsl文件中用于计算Forward Add光的代码片段,和build-in不同的是,前向渲染的额外光照不再需要写进第二个Pass里了。
2024-11-05 14:05:43
671
原创 【个人学习记录-Unity Shader基础】
渲染分为3个阶段 应用阶段 几何阶段 光栅化阶段应用阶段:由CPU处理。把视野外的物体剔除掉,然后设置要渲染的状态(材质纹理、纹理、Shader等),然后把图元(点、线、三角面)装载到显存。几何阶段:由GPU处理。处理传来的顶点和三角面。这个阶段重要任务就是把模型坐标转换到屏幕坐标。这一阶段会输出屏幕空间的二维顶点坐标、顶点的深度值、颜色等相关属性。光栅化阶段:由GPU处理。图元所包含的像素进行处理。然后哪些像素要被输出到屏幕上。
2024-11-04 17:56:53
1675
1
原创 【个人学习记录-实装GPU实例化渲染的AABB包围盒】
我的GPU实例化系统围绕字典类型:Dictionary<Bounds, List>展开,Bounds对应预先计算好的AABB包围盒,List对应包围盒内的对象的变换矩阵,而在此步骤中,我先进行数据的存储与读取。只有一些简单类型才可以被直接序列化,Dictionary、Bounds、Matrix4x4等复杂类型无法直接序列化,因此我们需要为这个类型编写对应的映射类,把它们分解成简单类型。,即把数据文件加载为映射类后,将映射类转换为我们需要的数据类型。同理,当我们试图读取数据文件为代码中的数据类型时,需要先。
2024-11-04 17:15:04
339
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人