gpt4 book ai didi

c++ - 从用四边形绘制的形状转换为用三角形绘制的形状

转载 作者:行者123 更新时间:2023-11-28 04:55:14 25 4
gpt4 key购买 nike

我是一名学生,几周前,我们被要求使用 GL_DRAW_QUADS 等 openGL 命令对 3D 形状进行编程,直到那时我基本上一直在使用四边形来处理所有事情(因为公认它更容易)

我遇到了障碍。我有多个可以用四边形渲染的形状,例如球体和环面,当直接用 GL_QUADS 渲染时,这些当前可以按预期工作

但是,当通过顶点缓冲区存储稍后要渲染的形状时,这是更好的做事方式,我的模型渲染器将只处理由三角形组成的形状。虽然四边形在技术上是两个三角形,但简单地更改我的方法以使用 GL_TRIANGLES、GL_TRIANGLE_FAN 或 GL_TRIANGLE_STRIP 并不能解决我的问题。

我想知道将以四边形绘制的形状转换为三角形的最佳方法是什么,而无需完全重写渲染这些形状的方法。

最佳答案

假设您有一组顶点 {v1,v2,v3,v4,v5,...} 并假设您将索引列表 {i1,i2,i3,i4,i5,...} 传递给draw 命令,你只需要传递一个不同的索引列表。

以前您会传递 {i1,i2,i3,i4} 的地方,现在您可以传递 {i1,i2,i4,i4,i2,i3} 以获得覆盖同一四边形的两个三角形。如果你想要粉丝,事情会变得更复杂。您每四个索引执行相同的过程。

1 -- 2           1 -- 2 |    |  becomes  |  / ||    |           | /  |4 -- 3           4 -- 3

关于c++ - 从用四边形绘制的形状转换为用三角形绘制的形状,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47273045/

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