首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >OpenGL如何创建更好的3D模型?

OpenGL如何创建更好的3D模型?
EN

Stack Overflow用户
提问于 2014-09-11 19:07:13
回答 1查看 281关注 0票数 1

现在,我正试图在OpenGL中创建一个螺旋线,并且我已经成功地创建了一个带直线的螺旋线。但这不是很详细..。因此,我做了一些谷歌搜索,并认为我可以用三角形代替我的线。

所以我在想,如果我们以我的螺旋线为例,这个建议是否意味着计算我的螺旋的所有三角形的位置,还是意味着我应该使用一些3D程序,比如.搅拌器,玛雅等,以创建模型并将它们导入OpenGL?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-09-12 16:38:35

我想你使用的是螺旋的参数方程

代码语言:javascript
运行
复制
x(t) = r*cos(t)
y(t) = r*sin(t)
z(t) = c*t

然后对t进行采样,并将连续的点与线连接起来。

下一步是为每个示例创建一个网格(带状或管道)。导数(x'(t),y'(t),z'(t)) (速度分量V)给你一个轴,第二个导数(x''(t),y''(t),z''(t))给你另一个轴(加速度分量A)。执行交叉乘积得到第三轴,并对您的轴向量进行正交化,使坐标系统附加到一个点上。如果您正在用“管”对形状进行建模,则在此坐标系中定义管道的横截面,并将相应的横截面点连接起来形成网格:

如果你只是用丝带,那就更容易了--只要用A轴作为你的横截面,把点连接起来,形成网格:

导数向量V

代码语言:javascript
运行
复制
   x'(t) = r*sin(t)
   y'(t) = -r*cos(t)
   z'(t) = c

二阶导数向量A

代码语言:javascript
运行
复制
   x''(t) = -r*cos(t)
   y''(t) = -r*sin(t)
   z''(t) = 0

你想要对你的坐标系进行正交化的数学:

代码语言:javascript
运行
复制
   normalize(A)
   AxV = cross(A,V)
   normalize(AxV)
   V = cross(AxV,A)
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25795311

复制
相关文章

相似问题

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