作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
最近我开始开发体素引擎。我需要的只是没有纹理的彩色体素,但数量非常大(比我的世界小得多)——问题是如何非常快速地绘制场景?我正在使用 c#/xna 但在我看来这在这种情况下不是很重要,让我们谈谈一般情况。看看这两款游戏:
最佳答案
1) Voxatron 使用软件渲染器而不是 GPU。如果您阅读此博客文章中的评论,您可以阅读有关它的一些详细信息:
http://www.lexaloffle.com/bbs/?tid=201
我自己没有仔细看,所以不能告诉你更多。
2) 我从来没有玩过 3D Dot Game Heroes,但我没有任何理由相信它使用了体素。我的意思是,我没有看到任何多维数据集被添加或删除。很可能它只是一个应用了漂亮纹理的静态多边形网格。
至于自己实现它,不要试图通过渲染立方体来绘制世界,因为这很慢。相反,您应该处理体积并生成位于实心体素和空体素相交处的网格。将体积分成合适大小的区域(例如 32x32x32)并为每个区域生成一个网格。
我写了一篇关于这个的书文章,你可能会觉得有用。它实际上是关于平滑的体素地形,但很多原则仍然适用。
您可以在此处在 Google 图书上阅读:http://books.google.com/books?id=WNfD2u8nIlIC&lpg=PR1&dq=game%20engine%20gems&pg=PA39#v=onepage&q&f=false
你可以在这里找到相关的源代码:http://www.thermite3d.org
关于optimization - 体素引擎和优化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7736533/
我是一名优秀的程序员,十分优秀!