光线步进 Ray Marching
在传统光线追踪里,我们通过解方程直接算出光线和几何体相交的精确坐标。但在某些场景中(比如云雾等体积数据,或者极其复杂的数学隐式曲面),方程根本解不出来。 Ray Marching 的核心思想是:既然算不出交点,那就沿着光线的方向,每次往前走一小步,每走一步,就停下来“四处张望”一 …
这里是所有已发布的文章,按时间倒序排列。
在传统光线追踪里,我们通过解方程直接算出光线和几何体相交的精确坐标。但在某些场景中(比如云雾等体积数据,或者极其复杂的数学隐式曲面),方程根本解不出来。 Ray Marching 的核心思想是:既然算不出交点,那就沿着光线的方向,每次往前走一小步,每走一步,就停下来“四处张望”一 …
SceneViewExtension 是 Unreal Engine 提供的一个接口类(ISceneViewExtension),它允许开发者在渲染管线的特定阶段插入自定义逻辑。 简单来说,它是引擎预留的渲染钩子 。通过继承并实现它,你可以访问到每一帧的 FSceneView 和 …
明确目标:我们要生成什么?根据物理海洋学的观测,海面高度通常被认为是一个高斯随机场。这意味着,如果我们想在频域中表达这个海面,我们需要生成一系列复数 $H_0$ 表示振幅,并且这些复数 $H_0$ 必须满足两个条件:
真实的海浪是由风吹拂产生的,所以波浪的主要传播方向应该与风向 一致。但风是混沌的,波浪不会 100% 笔直地顺着风走,而是会以风向为主轴,向两侧呈扇形发散。
为了便于表示频谱信息和后续的傅里叶变换,我们需要从原本的基于像素位置的坐标空间,通过平移、拉伸,构建出原点在中心的、以基频为单位的波数坐标。 平移:居中处理 HLSL 折叠 复制 float nx = (float)id.x - (float)Size / 2.0; float …
JONSWAP 公式 (Joint North Sea Wave Project Spectrum) 是海洋工程和海岸工程中广泛使用的风浪频谱模型。 JONSWAP 数学公式公式和参数$$ S(\omega) = \alpha g^2 \omega^{-5} \exp\left[ …
{{< link title=“从像素坐标空间(空间域)到波矢量(波数域)” url="/posts/f1f278a5" icon="/favicon.ico" >}} 2. {{< link …
Why在原生的 DirectX 开发中,想要给 Shader 传递数据,通常需要使用常量数据 (Constant Buffer / cbuffer)、资源绑定 (SRV / UAV / Sampler),它们的无论在定义阶段还是使用阶段都十分繁琐,为此,虚幻引擎封装了Shader …
注意 Global Shader 是一种不依赖材质系统的底层 GPU 程序,用于实现与具体材质或网格无关的渲染 Pass。 与 Material Shader 不同,Global Shader 不自动绑定场景数据或渲染状态,需要在 C++ 中手动组织资源和调度渲染。但这也使其更 …
在 Unreal Engine 里,“映射路径”(Virtual Path / Mount Point)通常和插件一起用,比如: TEXT 折叠 复制 /Plugin/MyPlugin/... 点击展开查看更多 但在非插件环境(普通项目模块)里一样可以手动注册 Mount …
输入关键词搜索文章内容