Android:如何向屏幕添加多个对象(OpenGL)?

发布于 2024-12-27 09:25:52 字数 182 浏览 1 评论 0原文

我正在使用一个模型查看器模板,该模板在屏幕中央显示 3D 立方体。我想要实现的目标是在屏幕上放置另一个较小的 3D 立方体,并且与主立方体处于不同的 XY 位置。因此,在视觉上,如果原始立方体位于中心,我想将第二个较小的立方体放置在右侧。

那么如何向屏幕添加另一个立方体、使其变小并更改其位置呢? 注意:我正在使用基本模板进行工作。

I'm working with a model viewer template that displays a 3D cube in the center of the screen. What I'm trying to achieve is put another, but smaller 3D cube on the screen and in a different XY position from the main. So visually, if the original cube is in the center, I would like to place the second smaller cube to the right.

So how do I add a another cube to the screen, make it smaller, and change its position?
Note: I'm working from a basic template.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

很快妥协 2025-01-03 09:25:52

为第二个对象分配不同的模型转换矩阵。
如果您使用固定管道进行渲染,那么就像调用 glMulMatrix 一样简单。
如果您使用着色器进行渲染,请将适当的矩阵作为统一的矩阵传递给顶点着色器。

以下是有关此主题的一些基本阅读内容:

Assign different model transformation matrix to second object.
If you are rendering with fixed pipeline, then it's as simple as calling glMulMatrix.
If you are rendering with shaders, then pass appropriate matrix as uniform to your vertex shader.

Here's some basic reading about this subject:

烟花肆意 2025-01-03 09:25:52

你有很多方法可以做到这一点。

  • 修改立方体顶点的坐标(可能是个坏主意)。
  • 使用缩放操作和平移操作修改模型视图矩阵,然后再次绘制立方体(可能是更好的主意)。您必须注意转换的顺序。
  • 使用反向平移和缩放操作修改相机矩阵,然后再次绘制立方体(一个不错的主意,但令人费解且有点不直观)。
  • 修改视口...

我还猜测您涉及旋转(以便您的立方体显示其 3D 优点),因此转换的顺序非常重要。

如果您想进一步学习,您可以阅读 OpenGL 红皮书,该书可以在互联网上免费合法获取。第一章回答了您的所有问题。

You have a lot of ways to do this.

  • Modify the coordinates of the vertices of the cube (probably a bad idea).
  • Modify the modelview matrix with a scale operation and a translate operation, then draw your cube again (probably a better idea). You'll have to pay attention to the order of the transformations.
  • Modify the camera matrix with the reverse translate and scale operations, then draw your cube again (a not so bad idea, but convoluted and slightly unintuitive).
  • Modify the viewport...

I'm also guessing that you have rotations involved (so that your cube is showing its 3D goodness), so the order of the transformations is really important.

If you want to study a little bit more, you might read the OpenGL red book, available legally for free on the internet. The first chapters answer all your questions.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文