gpt4 book ai didi

java - 在 Java 中渲染 "Slice"的球体 - 效率

转载 作者:行者123 更新时间:2023-12-01 10:35:11 27 4
gpt4 key购买 nike

我正在尝试在java中渲染一个半球。但是,我想要渲染由 2 个角度(方位角和仰角)定义的切片。由于我正在定义一个切片,因此我无法(据我所知)使用任何内置原语。如果方位角范围定义为0-360,仰角范围定义为0-70,则这将是一个顶部有一个倒锥形孔的半球。

当在“圆锥体”内渲染它时,我选择将其作为以 5 度增量的三角形进行渲染。这意味着对于 360 度圆锥体,有 73 个不同的顶点(如果我计算正确的话:360/5 度切片,圆锥体的原点或尖端与所有边共享,所有其他顶点由相邻三角形切片共享)

我的问题:
将它们渲染为具有多个顶点的单个多边形或每个仅具有 3 个顶点的多个三角形是否更有效?如果我做一个多边形,我是否仍然需要包含每个三角形的所有三个点,或者如果它是一个共享顶点,我是否只包含它一次?抱歉,我的图形渲染知识有限。也很抱歉如此冗长;我希望有人能发现我的思维过程中的一些错误,这可能会以任何方式澄清问题。

最佳答案

首先 - 使用 Google 找到一种算法来创建非原始球体。

第二 - 在链下游的某个地方 - 将使用三角形。最有可能的是底层库。但对你来说——这取决于你是否打算砍掉所创建的区域。如果您不打算进一步分割该区域,我只会将其设为一个多边形。实际上,想一想之后,您也可以随时分割多边形。所以只需将其设为一个多边形即可。

我想了想,决定修改这个答案。在 openGL 中创建多边形有两种方法。您可以将其创建为三角形网格或轮廓多边形。因此,如果您问“我应该使用三角形网格还是轮廓多边形”,我会说使用三角形网格。分解三角形网格比分解多边形轮廓容易得多,因为要分解网格,您所要做的就是停在其中一个点,将最后两个点包含在新对象中,然后继续沿着三角网格。轮廓多边形要求您围绕多边形向左和向右移动以找到发生断裂的两个点。如果那是清楚的话。如果不说的话。

更新:中午 12:05制作多边形时,您可以使用三角形网格或多边形轮廓。轮廓主要适用于 2D,而三角形网格适用于 2D 和 3D 系统。如果您有任何类型的多边形大于三个点,那么最好将它们全部放入一个数组中。这允许您使用采用数组的内置例程并简单地遍历它来构建多边形。通过将所有内容放入数组中,您还可以更轻松地添加新点、删除点或调整点。您所要做的就是更改数组条目,然后调用相同的例程来再次绘制所有内容。 (这应该只是对函数的一次调用。)

关于java - 在 Java 中渲染 "Slice"的球体 - 效率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34795408/

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