首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在XNA中为体素引擎隐藏立方体模型的某些面以对其进行优化?

如何在XNA中为体素引擎隐藏立方体模型的某些面以对其进行优化?
EN

Stack Overflow用户
提问于 2012-01-28 09:13:07
回答 1查看 688关注 0票数 2

你好,我正在尝试制作一个类似于“我的世界”的地形引擎。

我能装上一大块。它非常迟缓,当一次加载一个以上的块时,它变得无法播放。

这是我的渲染代码:

代码语言:javascript
复制
public static void renderNormalBlock(GraphicsDevice g, Chunk chunk,Texture2D texture, int x, int y, int z)
    {
        float tileSize = 0.5F;
        Vector3 blockPosition = new Vector3(x / tileSize, y / tileSize, z / tileSize);
        Model blockModel = Main.defaultBlockModel;
        ModelMesh mesh = blockModel.Meshes[0];
        g.SamplerStates[0] = SamplerState.PointWrap;
        BasicEffect effect = (BasicEffect)mesh.Effects[0];
        effect.TextureEnabled = true;
        effect.Texture = texture;
        effect.View = Main.camera;
        effect.Projection = Matrix.CreatePerspectiveFieldOfView(MathHelper.ToRadians(45), g.DisplayMode.AspectRatio, 1, 128);
        effect.World = Matrix.CreateWorld(blockPosition, Vector3.Forward, Vector3.Up);
        mesh.Draw();
    }

正如您所看到的,我没有使用for-each或for循环,因为它只是一个多维数据集;它不是必需的。

我做了一些研究,我发现最好的答案是我需要隐藏立方体的不可见的面。假设有两个相邻的立方体,我不想渲染中间的面。

这就是我被困住的地方,大多数人使用的是用XNA绘制的立方体,而我使用的是模型。

我是XNA的新手,而且我不太了解手动绘制立方体所涉及的数学知识,因为我现在是9年级,所以我使用了一个模型。

那么我该如何处理只渲染可见的面呢?

EN

回答 1

Stack Overflow用户

发布于 2012-01-28 09:24:39

你在学习基础知识之前就开始开发游戏了。这样你不会走太远的。首先,找一本关于XNA开发的书并浏览一遍。这是一个基本的主题,将在那里涵盖。此外,请访问techCraft http://techcraft.codeplex.com/并下载随所有代码一起提供的实现。你将会从中学到很多东西。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9042103

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档