做点光源的最佳方法
Best methods to do Point lights
我正在尝试做 directx 11 的东西,我想知道实现点光源的最佳方法是什么,喜欢一个关卡中的 2000 个......
目前我正在做一个光栅的教程...它正在使用着色器类实现光...我认为每个着色器类都有一个 3D 模型,他还在着色器中声明NUM_LIGHTS,在教程中声明 4 个......
我想拥有多个 3D 模型,并希望实现影响它们的多个点光源......怎么做...
如果您正在做前向照明,4 到 8 盏灯是一个常见的限制,而不会开始影响帧速率。如果你是一个绝对的初学者,我建议现在只使用 8 盏灯,直到你对 D3D11 API 有了更好的了解。当您熟悉 API 并愿意更改渲染器的程序结构时,可以考虑更高级的照明方案,例如延迟照明或前向 + 照明。有一篇很好的博客文章描述了使用 DirectX 11 的所有三种(转发、延迟和转发+(照明技术。源代码可在Github上找到。另一个资源是学习Opengl,它也描述了延迟照明。
Forward+ 是目前要走的路。通过实现Forward+,您还可以获得免费的深度预通道,您也可以在其他渲染技术/程序中使用它,例如HBAO,它代表"基于地平线的环境光遮蔽">
相关文章:
- 在C#中处理C++指针而不使用unsafe的最佳方法
- 在C++中,将大的无符号浮点数四舍五入为整数的最佳方法是什么
- 实现无开销push_back的最佳方法是什么
- 在C++中向零方向近似的最佳方法
- 使用不同的CRT将新的C++代码与旧的(二进制)组件隔离开来的最佳方法是什么
- 检测win32服务创建和删除的最佳方法
- 在C++中样板"冷/never_inline"错误处理技术的最佳方法是什么?
- 在 c++ 中对类中的 c 字符串动态数组进行排序的最佳方法是什么?
- 将线程中的数据存储到全局容器的最佳方法?
- 将一系列整数放入类的最佳方法是什么?
- 在派生类中使用基类的私有成员变量的最佳方法
- 在 C++ 中将非指定类型作为参数传递的最佳方法?
- Qt - QVector 和模型视图 - 从列表视图获取自定义类的最佳方法是什么?
- 使用 Git 处理 C++ Visual Studio 2019 解决方案的外部依赖项源代码管理的最佳方法是什么?
- 比较两个节点坐标的最佳方法是什么?
- 在nodejs中使用本机代码的最佳方法是什么?
- 将 pybind11 绑定标记为已弃用的最佳方法
- C++:将向量传递到构造函数以创建成员变量的最佳方法?
- C++中变量混叠的最佳方法
- 转换/映射方法最佳做法