gpt4 book ai didi

optimization - 体素引擎和优化

转载 作者:行者123 更新时间:2023-12-03 15:51:10 25 4
gpt4 key购买 nike

最近我开始开发体素引擎。我需要的只是没有纹理的彩色体素,但数量非常大(比我的世界小得多)——问题是如何非常快速地绘制场景?我正在使用 c#/xna 但在我看来这在这种情况下不是很重要,让我们谈谈一般情况。看看这两款游戏:

  • http://www.youtube.com/watch?v=EKdRri5jSMs
  • http://www.youtube.com/watch?v=in0bavLJ8KQ

  • 特别是我认为 2 号视频代表了很好的优化方法(我的 gfx 卡在 192 x 192 x 64 时就开始卡住了)他们是如何实现这一点的?

    我希望在引擎中拥有什么:
  • 没有纹理的彩色体素,但有阴影
  • 很多很多体素,比如最小 512 x 512 x 128 来实现类似视频 #2
  • 阴影(平滑阴影会很棒,但这不是必需的)
  • 可选:动态照明(例如来自飞行的火球,在体素结构附近点亮)
  • 帧率最低 40 FPS
  • 相机有 3 种自由方式(x 轴移动、y 轴移动、z 轴移动),不需要相机旋转
  • 最后可选功能可能是景深(它会很甜蜜^^)

  • 什么优化我已经知道了:
  • 删除驻留在体素结构内的看不见的体素(覆盖
    从六个方向由其他体素)
  • 去除体素的看不见的面 - 因为相机没有旋转并且总是像在 TPP 游戏中一样向前倾斜,所以如果我们划分屏幕
    通过垂直切割,左体素和右体素将仅显示 3 个面
  • 将体素保存在字典中而不是 3 维数组中 - 跳过大小为 512 x 512 x 128 的数组需要几毫秒
    Not Acceptable - 但字典 int:color 其中 int 描述了打包
    3D 定位要快得多
  • 在适用的情况下使用实例化
  • 遮挡? (怎么做?)
  • 空间分割/八叉树(这是个好主意吗?)

  • 如果有人给我提示如何改进上面列出的现有优化或可以分享新改进的想法,我将非常感激。谢谢

    最佳答案

    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/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com