我只是有一些关于延期着色的问题。我已经到了从多个渲染目标中获得颜色,位置,正常和纹理的地步。我的问题与我接下来要做的事有关。为了确保我从纹理中获得了正确的数据,我在屏幕上放置了一个平面并将纹理渲染到该平面上。我不明白的是如何操作这些纹理,以便最终的输出在光照下呈阴影。我是否需要渲染一个占用屏幕的平面或四边形,并将所有计算应用到该平面上?如果我这样做,我有点困惑,因为“飞机”将是一个可渲染的物体,所以我需要重新渲染飞机。我是否错误地想到了这一点?问题延期着色
Q
问题延期着色
0
A
回答
1
您需要渲染一些几何图形来表示光线覆盖的区域。光的每个像素的照明术语被累积到目标渲染目标中。这给你你点燃的结果。
有多种方法可以做到这一点。要启动并运行,简单/简单(并且速度很慢)的方法是为每个灯渲染一个全屏四元组。
基本上:
- 设置:渲染的所有对象转换为G-缓冲器,存储所述各对象属性(反照率,镜面,法线, 深度,你需要什么)
- 照明:对于每一个光:
- 渲染一些几何来表示的光被打算覆盖在屏幕上
- 样品的g缓冲器你需要计算照明贡献数据的区域(可以使用VPOS寄存器吨Ø找到UV)
- 积累照明术语到目标渲染目标(后备缓冲将简单的情况下做的很好)
一旦你得到了这个工作,有不同的方式负荷加快速度(剪刀直线,严格限制光线的网格,模板测试以避免阴影“浮动”区域,同时绘制多个灯光和更高级别的技术(如平铺))。
有一个关于延迟着色很多不同的斜面上的这些天,但原来的技术覆盖全面这里:http://http.download.nvidia.com/developer/presentations/2004/6800_Leagues/6800_Leagues_Deferred_Shading.pdf
+0
谢谢!我会接受这个答案。我问这个问题的主要原因是我似乎无法获得最终的渲染效果,我想知道是否我误解了如何达到这一点。当我试图渲染点光并计算数据时,发现我只是绑定了错误的顶点数据。谢天谢地,我想通了,并可以继续这一点,我不能相信我没有绑定绘图前的顶点数组 – Devvy 2014-10-20 02:46:33
相关问题
- 1. 延期着色DirectX演示?
- 2. OpenGL着色问题
- 3. XNA和FBX着色问题
- 4. Qt/OpenGL着色器问题
- 5. iOS CSS着色问题
- 6. C++着色器问题
- 7. C++着色器问题
- 8. 交替着色问题
- 9. 顶点着色器问题
- 10. C++着色器问题
- 11. HTML5画布 - 着色问题
- 12. OpenGL着色器问题
- 13. BAM TPE的延期问题
- 14. 是否可以在WebGL中实现延期着色?
- 15. OpenGL延期着色照明无法正常工作
- 16. 如何在延期着色系统中实现光遮挡?
- 17. WebGL着色器创建问题
- 18. C++在像素着色器的问题
- 19. Visual Studio 2008语法着色问题
- 20. 重构GLES30着色器的问题?
- 21. WebGL - getAttribLocation:无对象,着色器问题
- 22. WinForms DataGridView重新着色问题
- 23. 着色时的高程问题BottomNavigationView
- 24. Dreamweaver CS4 html5语法着色问题?
- 25. PyCharm IDE语法着色问题
- 26. GLSL着色器和WebGL问题
- 27. 有着色器/代码的问题
- 28. C++着色器矩阵问题
- 29. 滚动条着色中的CSS问题
- 30. 的UITableViewCell古怪的着色问题:
我刚想到这里,我作出最后的质地和做所有的计算到纹理?这很有道理......嗯,我会试试 – Devvy 2014-10-20 01:43:33