我正在寻找一种有效的方式来使用directx 11显示大量球体。球体由(x,y,z,r)
定义,其中(x,y,z)
是空间坐标,r
是半径。我只想显示可以看到的球体,这意味着不在视野内的球体和太小以至于看不见的球体都不会被绘制。但是,如果一组小于一个像素的球体至少与一个像素一样大,那么我想要显示最主要的颜色。球体只有一种颜色和不同级别的透明度。任何帮助将不胜感激,不完整的答案可以接受。Directx 11球体
1
A
回答
0
你需要几件事情。首先是索引单位球体几何体,第二个是存储球体实例属性(位置,半径和颜色)的缓冲区,第三个是API参数未来的小缓冲区。这三个组合在一个'ID3D11DeviceContext :: DrawIndexedInstancedIndirect'
剩下的问题是“如何提供实例缓冲区?”。 cpu很简单,只需应用截锥体剔除,由于透明度而重新排序,并根据屏幕投影应用合并,更新缓冲区并使用'ID3D11DeviceContext :: DrawIndexedInstanced'。
gpu版本会对计算着色器做同样的事情,但实现起来会比较困难。优点,零CPU/GPU同步,并应支持更多的实例。
相关问题
- 1. DirectX轨道球体倾角
- 2. Directx 11 Compatiblilty
- 3. directX 11 scale texture2D
- 4. DirectX 11覆盖
- 5. DirectX 11和FreeType
- 6. 在DirectX 11
- 7. Directx 11 2D ortho
- 8. Constant Buffer DirectX 11
- 9. 使用指定的字体与DirectX-11
- 10. 将纹理映射到DirectX球体?
- 11. SlimDX和WPF(DirectX 11)
- 12. Directx 11 Bitblt备选
- 13. DirectX 11上的NURBS?
- 14. Directx 11寄存器
- 15. DirectX 11访问冲突
- 16. DirectX 11 Sprite 2D相机
- 17. Directx 11内存管理
- 18. DirectX 11功能级别
- 19. DirectX 11向后兼容
- 20. C++ DirectX 11 glGetUniformLocation等价于
- 21. DirectX 11 D3DXMatrixTranslation继续运行?
- 22. C++ Directx 11环境照明
- 23. DirectX 11延期渲染
- 24. 澄清(的DirectX 10/11)
- 25. Directx 11纹理映射
- 26. Directx 11骨骼动画
- 27. DirectX 11透明度问题
- 28. 降级DirectX 11至9.0c(Win7)
- 29. 使用DirectX 11读取.tga
- 30. Directx 11 HLSL发光效果