- 博客(10)
- 收藏
- 关注
原创 Shader地形刷草——错误记录
摘要:本文总结了Unity开发中遇到的三个草地交互问题及解决方案:1) 草模型因物体空间位移计算与缩放比例叠加导致异常伸长,通过调整Shader输出参数解决;2) Inspector面板灰色不可编辑问题,因误选FBX源文件而非场景实例,采用直接拖拽修改并制作Prefab的方法;3) 地形笔刷忽略Prefab缩放设置,需在EditDetails中手动调整尺寸参数。最终在URP下实现了高性能的交互草地系统,通过笔刷大小和密度参数优化了草地分布与性能表现。
2026-02-09 21:54:30
267
原创 实战:草地的建模&风动&交互
本文详细介绍了在Blender中创建低模草丛模型并实现动态效果的完整流程。首先通过面片旋转、环切和缩放制作基础草叶,再复制组合成草丛。然后使用顶点着色技术(红黑渐变)标记草的动态区域。接着将模型导入Unity,转换为URP管线并解决材质转换问题。通过ShaderGraph实现风力摆动效果,利用顶点位移和颜色遮罩控制草叶运动。最后添加C#脚本实现玩家交互功能,计算推力使草随玩家移动产生动态倒伏。整个过程涵盖了建模、着色、渲染管线转换、Shader编程和脚本交互等关键技术点,并针对常见问题提供了解决方案。
2026-02-07 20:46:04
2179
原创 Shader Graph——岩浆加速器
本文介绍了如何通过ShaderGraph和C#脚本制作"岩浆加速器"效果。首先在ShaderGraph中创建FlowSpeed变量并连接到时间偏移节点,将固定流速改为可调参数。然后编写MagmaController脚本,通过按键控制岩浆流速:正常状态下缓慢流动(0.2),按住空格时加速流动(2.0)并增强发光效果。脚本使用material.SetFloat方法动态修改Shader参数,实现了按键交互的岩浆加速效果,同时保留了材质面板的参数调节功能。
2026-02-06 10:38:20
210
原创 Shader Graph——做一个简单的“流动岩浆”
本文介绍了在URP项目中创建流动岩浆效果的ShaderGraph教程。首先创建LitShaderGraph并添加SimpleNoise节点,通过Time和TilingAndOffset节点实现动态效果。接着使用Blackboard面板添加HDR颜色属性,通过Multiply节点混合噪声和颜色后连接到BaseColor和Emission输出。最后创建材质球并应用到3D物体上,调整HDR颜色强度实现发光效果。整个过程涵盖了从Shader编写到材质应用的全流程,最终可实现具有动态流动效果的岩浆材质。
2026-02-05 10:05:15
537
原创 Unity URP管线与后处理(Post-Processing)
文章摘要:本文介绍了Unity URP管线中的后处理技术应用。后处理通过滤镜效果提升画面表现,包括全局和局部Volume控制。重点讲解了Bloom辉光和ACES色调映射两大核心特效,以及从Built-in管线迁移到URP时常见的问题解决方案。针对材质兼容性问题,提供了自动转换和手动修改Shader两种修复方式,特别详述了水体Shader的改造过程。最后展示了配置GlobalVolume实现辉光、色调映射和暗角效果的具体参数设置,通过对比图直观呈现了画面质感的显著提升。(149字)
2026-02-04 10:54:17
1490
原创 UV流动动画(UV Animation)
摘要:本文介绍了UV动画的实现原理,通过"传送带"理论形象地解释了UV坐标与贴图的关系。静态时UV固定,动态时通过代码偏移UV坐标实现纹理流动效果。文章详细讲解了Shader编写步骤,包括UV偏移计算、透明处理(Additive混合)和发光增强(Emission)。最后介绍了Billboard技术,使火焰始终面向摄像机。关键点包括:UV坐标的小数部分处理实现无缝循环、透明物体的渲染顺序设置、以及顶点着色器中实现Billboard效果的数学变换。
2026-02-03 10:49:30
1354
原创 深度缓冲(Depth Buffer)
深度缓冲(Z-Buffer)是计算机图形学中解决物体遮挡问题的关键技术。它通过记录每个像素距离摄像机的深度值(0.0-1.0),配合深度测试(Z-Test)机制,无需按远近顺序绘制物体就能正确处理遮挡关系。Unity中实现深度可视化需要:1)通过Camera.depthTextureMode启用深度纹理;2)编写特殊Shader,使用Linear01Depth函数将非线性深度数据转换为线性灰度图。不同图形API(如DX和OpenGL)采用不同深度存储方式(正向/反向Z),但Unity的API已屏蔽这些差异。
2026-02-02 13:02:00
1144
原创 创建第一个Shader
摘要:Unity Shader框架由三大核心组成:1) Properties作为对外接口,类似菜单供用户调整参数;2) SubShader提供多套兼容方案,适应不同硬件性能;3) Pass执行具体渲染指令。Shader代码采用结构体封装数据,通过顶点着色器(vert)处理形状变换,片元着色器(frag)完成上色。其中顶点数据需经历模型空间→裁剪空间的坐标转换,颜色值使用fixed类型以优化性能。整个流程形成从属性输入→几何处理→像素着色的完整渲染管线。
2026-02-01 11:40:44
990
原创 点乘,叉乘与基础光照(Dot-Cross-Lighting)
本文介绍了向量点乘和叉乘在计算机图形学中的应用。点乘用于计算光照效果(如Lambert模型)和判断物体相对位置,公式为a·b=|a||b|cosθ。当点积小于0时表示背光面或背面剔除。叉乘用于构建坐标系和计算法向量,结果是一个垂直于原向量的新向量,具有方向性(不满足交换律)。特别地,通过连续叉乘可以判断点是否在三角形内,这是光栅化阶段的核心算法。两种运算分别产生标量(点乘)和向量(叉乘),在图形渲染中发挥关键作用。图片来源:B站
2026-01-31 11:44:00
286
原创 焦散(Caustics)
本文介绍了水面焦散效果的实现原理及图形学优化方法。通过凸透镜原理解释水面波浪如何聚焦阳光形成光斑,提出"伪焦散"概念:使用渔网纹理投影替代真实光线计算。为模拟自然水纹动态效果,采用双层采样技术,让两张反向移动的纹理叠加产生不规则变形。最后给出Shader实现代码,通过世界坐标定位、双层纹理采样和最小值混合等步骤,高效模拟水面光斑效果。这种方法在保证视觉效果的同时大幅降低计算成本。
2026-01-31 10:29:29
922
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅