问题标签 [voxel]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
opengl - 几何着色器体素化错误
我试图制作一个几何着色器(使用着色器制造商)来使模型合法化。首先,我试图进行体素化,但结果并不好,我找不到它的问题所在。
在下面的代码中,想法是找到输入三角形的重心,然后使其成为我要创建的框的中心。
我知道这不是世界上最优雅的代码,但首先要先行,我需要让它工作......
这就是我得到的: 这就是我应该得到的:
opengl - 体素锥追踪定向光柔和阴影
我目前正在尝试实现锥形跟踪软阴影,如本文第 8.3.1 节所述。
我在 3D 纹理中获得了分层 mip 映射体素结构,通过在片段着色器中绘制 Sponza 场景进行体素化,并将“体素片段”存储到 3D 纹理中。mip-mapping 在计算着色器中完成。
作者解释了如何为点光源和区域光源创建柔和的阴影,这很容易理解,但他没有解释 Sponza 场景使用的定向光源。
对于点光源,锥体是从点光源开始追踪的,当它穿过场景的每个部分时,它的半径会增加,在场景中被描述为“体积”。但是,定向灯没有特定的光源点,只有一个方向。我如何将这个概念转化为与定向灯一起使用?圆锥体必须是不同的形状,不是吗?
c# - 在 XNA 中创建无纹理彩色立方体的正确方法?
我目前正在尝试将此代码转换为 C# XNA,但是我在转换 CreateCube 方法时遇到问题 - 在 XNA 中创建顶点列表的资源似乎已过时、已死或根本不起作用。
谁能给我一些帮助?我只想通过手动设置每个面的顶点来创建一个彩色的、无纹理的立方体,然后将(那些)立方体或立方体的一部分添加到 VertexList 进行渲染。
opengl - 使用几何着色器优化立方体渲染
在我的第一个 opengl 'voxel' 项目中,我使用几何着色器从 gl_points 创建立方体,它工作得很好,但我相信它可以做得更好。在 alpha 颜色中,我传递有关应该渲染哪些面的信息(以跳过与其他立方体相邻的面),然后使用“参考”立方体定义创建可见面的顶点。每个点乘以 3 个矩阵。本能告诉我,也许整张脸都可以乘以它们而不是每个点,但是我的数学能力很差,所以请指教。
-------- 更新代码:-----
java - 块生成算法/代码
所以基本上我正在尝试制作一个“体素世界”生成器(我使用术语体素非常失落,更多的是一个盒子)。我已经做了一个createChunk();
方法,它基本上只是使用该createVoxel()
方法和一个 for 循环来放置它几次,每次将它的 X 增加 1。
我想知道是否有一种方法可以使这更容易和更随机化,使用noise
我相信可能会有所帮助?但我不知道如何使用它,所以有人可以解释一下我的并发症吗?
谢谢 :)
java - 使用三重 int 数组
好的,所以我创建了一个像这样的 int 数组int position = new int[160][250][160]
来表示 3D 空间中的一个位置([x][y][z]
)我想做的是从一个点到另一个点画一条线,但是我对如何从该数组中获取一个数字感到困惑?
如果我想从点画一条线,我[78][89][30]
将[34][75][25]
如何从其中一个数组中获取特定数字?还是最好只创建 3 个单独的数组?(记住体素)?
谢谢 - 沙姆斯
c++ - 分组网格上的食人魔碰撞检测?
我正在尝试创建一个基于体素的游戏,并且正在渲染数百万个立方体。
为了加快渲染速度,我将立方体组合成块,将 32x32x32 立方体组合成一个网格。这是为了减少对 GPU 的渲染调用次数并提高帧率。
我正在使用 ManualObject 来构建块,并且效果很好。但是,现在的问题是,由于各个块不是绑定到各个场景节点的实体,因此我找不到进行碰撞检测的方法。
食人魔有办法单独处理 ManualObject 的子网格吗?
c++ - OpenGL 纹理白线间隙
作为一个我已经有一段时间的辅助项目,我一直在尝试创建一些体素地形。然而,令我沮丧的是,纹理似乎无法正常工作。我正在使用 GL_REPEAT 和 GL_NEAREST 映射纹理。纹理位于精灵表中,大小为 16x16。我目前正在使用 minecraft 纹理进行调试。我尝试通过移动纹理 1 texel 来修复它,但这也不起作用。
这是处理它的代码:
似乎离我越远,线条就越明显。所以我尝试删除 mipmap。这也没有帮助。我不知道如何处理这个问题。有任何想法吗?这是纹理:
opengl - 体素锥跟踪软阴影
我最近在 OpenGL 4.3 中使用体素锥体跟踪实现了软阴影,方法是在光的方向上跟踪一个锥体并累积不透明度值。
我试图解决或隐藏的关键是当被遮挡的表面更接近遮挡物时非常体素化的阴影效果,以及由于表面体素化而隐藏阴影中的清晰点。我正在使用 64x64x64 的低分辨率体素;然而,即使我使用了更高分辨率的体素,一些较高 mip-map 级别的低分辨率体素仍会在跟踪中捕获。
所以这是我的第一个想法:我希望能够保留最远的阴影最柔和的部分,并用阴影贴图替换更靠近遮挡物的阴影部分。阴影贴图会随着它远离每个遮挡物而褪色,我会以某种方式将它与锥形跟踪阴影混合。
谁能想到一种方法来根据与每个对象的距离为阴影贴图淡化阴影,然后让它平滑地融合到锥形跟踪阴影中?
我的另一个想法是以某种方式在更接近遮挡物的表面上跟踪阴影,但这可能太昂贵了。
或者,我欢迎任何其他想法来帮助改进我的软阴影算法。
我还放了一段视频来展示它的动态:
https://www.youtube.com/watch?v=SUiUlRojBpM
仍然没有找到解决阴影问题的方法。
c - 放大立方体并将其放入 3D 空间
我已经创建了一个程序来在白色画布上显示一个带衬里的立方体,但我不确定如何将该立方体组合成多个?10 x 10。另一个问题是如何在 3D 空间中创建相同的立方体?
这是我的代码: