繁体   English   中英

在OpenGL中将2d对象附加到3d对象

Attaching 2d objects to 3d obejcts in OpenGL

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

我试图在我制作的3d立方体的侧面渲染2d对象。 多维数据集旋转,并且这样做还将旋转2d对象。 如何将2d对象附加到立方体的侧面?

我尝试了许多方法,包括将2d对象制成位图,然后将位图作为纹理附加到多维数据集。 但是我觉得这不是专业的方法。

3D立方体

void DrawCube(void)
{
     glMatrixMode(GL_MODELVIEW);
    // clear the drawing buffer.
    glClear(GL_COLOR_BUFFER_BIT);
   glLoadIdentity();
        glTranslatef(0.0,0.0,-10.5);
    glRotatef(xRotated,1.0,0.0,0.0);
    // rotation about Y axis
    glRotatef(yRotated,0.0,1.0,0.0);
    // rotation about Z axis
    glRotatef(zRotated,0.0,0.0,1.0);
  glBegin(GL_QUADS);        // Draw The Cube Using quads
    glColor3f(0.0f,1.0f,0.0f);    // Color Blue
    glVertex3f( 1.0f, 1.0f,-1.0f);    // Top Right Of The Quad (Top)
    glVertex3f(-1.0f, 1.0f,-1.0f);    // Top Left Of The Quad (Top)
    glVertex3f(-1.0f, 1.0f, 1.0f);    // Bottom Left Of The Quad (Top)
    glVertex3f( 1.0f, 1.0f, 1.0f);    // Bottom Right Of The Quad (Top)
    glColor3f(1.0f,0.5f,0.0f);    // Color Orange
    glVertex3f( 1.0f,-1.0f, 1.0f);    // Top Right Of The Quad (Bottom)
    glVertex3f(-1.0f,-1.0f, 1.0f);    // Top Left Of The Quad (Bottom)
    glVertex3f(-1.0f,-1.0f,-1.0f);    // Bottom Left Of The Quad (Bottom)
    glVertex3f( 1.0f,-1.0f,-1.0f);    // Bottom Right Of The Quad (Bottom)
    glColor3f(1.0f,0.0f,0.0f);    // Color Red
    glVertex3f( 1.0f, 1.0f, 1.0f);    // Top Right Of The Quad (Front)
    glVertex3f(-1.0f, 1.0f, 1.0f);    // Top Left Of The Quad (Front)
    glVertex3f(-1.0f,-1.0f, 1.0f);    // Bottom Left Of The Quad (Front)
    glVertex3f( 1.0f,-1.0f, 1.0f);    // Bottom Right Of The Quad (Front)
    glColor3f(1.0f,1.0f,0.0f);    // Color Yellow
    glVertex3f( 1.0f,-1.0f,-1.0f);    // Top Right Of The Quad (Back)
    glVertex3f(-1.0f,-1.0f,-1.0f);    // Top Left Of The Quad (Back)
    glVertex3f(-1.0f, 1.0f,-1.0f);    // Bottom Left Of The Quad (Back)
    glVertex3f( 1.0f, 1.0f,-1.0f);    // Bottom Right Of The Quad (Back)
    glColor3f(0.0f,0.0f,1.0f);    // Color Blue
    glVertex3f(-1.0f, 1.0f, 1.0f);    // Top Right Of The Quad (Left)
    glVertex3f(-1.0f, 1.0f,-1.0f);    // Top Left Of The Quad (Left)
    glVertex3f(-1.0f,-1.0f,-1.0f);    // Bottom Left Of The Quad (Left)
    glVertex3f(-1.0f,-1.0f, 1.0f);    // Bottom Right Of The Quad (Left)
    glColor3f(1.0f,0.0f,1.0f);    // Color Violet
    glVertex3f( 1.0f, 1.0f,-1.0f);    // Top Right Of The Quad (Right)
    glVertex3f( 1.0f, 1.0f, 1.0f);    // Top Left Of The Quad (Right)
    glVertex3f( 1.0f,-1.0f, 1.0f);    // Bottom Left Of The Quad (Right)
    glVertex3f( 1.0f,-1.0f,-1.0f);    // Bottom Right Of The Quad (Right)
  glEnd();            // End Drawing The Cube
glFlush();
}

样本2D对象

void Rectangle(double bottomLeftVertexX, double bottomLeftVertexY, double topRightVertexX, double topRightVertexY)
{
    double x1 = bottomLeftVertexX;
    double y1 = bottomLeftVertexY;
    double x2 = topRightVertexX;
    double y2 = topRightVertexY;


    glBegin(GL_POLYGON);
        glVertex2f(x1, y1);
        glVertex2f(x2, y1);
        glVertex2f(x2, y2);
        glVertex2f(x1, y2);
    glEnd();
}

Rectangle(20.0, 15.0, 40.0, 47.0);
问题暂未有回复.您可以查看右边的相关问题.
1 在WPF中将2D对象附加到3D对象

我有一个Viewport3D对象,其中包含分层Model3D对象的场景(在Model3DGroups中分组)。 我需要将2D对象“附加”到场景中的3D元素。 我阅读了一些有关3D投影的文章,但我不完全了解如何将WPF场景数据应用于这些解决方案。 这样做的正确方法是什么? 我也尝试过 ...

2012-01-29 15:54:37 1 2686   wpf/ 3d
2 在openGL中用2D纹理映射3D对象

我有一个由三角形组成的立方体,所以有8个顶点和相应的斜率来创建三角形。 我在为该立方体创建纹理坐标时遇到麻烦。 我尝试使用以下值: 我看到amt的变化值产生了奇怪的视觉结果。 我了解到,由于图像可能小于实际对象,因此没有必要的一对一对应关系,因此我尝试将amt设置为较小的值,但仍然 ...

3 如何轻松地将3d文本附加到3d游戏对象?

现在,我要做的是添加3d文本GameObject> 3D对象> 3D文本作为3d对象的子代,然后将3d文本或多或少地拖动到尽可能接近3d对象的程度。 但是,有没有办法将文本自动粘贴/附加到游戏对象一侧? 顺便说一句:底部的警告是什么意思? 我该如何解决? ...

2019-08-20 19:16:50 0 31   unity3d
5 将3D效果添加到2D对象-DirectX

我编写了一个简单的程序来加载directX .x网格文件。 我加载的图像显示如下 。 但是,MeshViewer显示的是这样的 。 如何获得3D外观? 我应该在DirectX库中进行哪个调用? ...

6 从3D对象绘制2D形状

我没有THREE.JS的经验。 我不是要准备好的代码,而是要指出我要寻找的内容,并告诉我我是否在考虑正确。 我看过很多话题,但是我无法处理。 好吧,我正在加载外部.OBJ模型。 它作为bufferGeometry。 我想获得3d模型的形状,并在第二个Canvas中将其绘制为2d。 我到达了位置-g ...

7 SolrNet SpatialSearch用于2D / 3D对象

我一直在尝试使SOLR的SpatialSearch适配器在搜索二维和三维对象上工作。 我尝试使用solr.LatLonType,但无法将任何数据成功添加到使用该类型的字段中。 然后,我发现关于solr.SpatialRecursivePrefixTreeFieldType可能会有更多信息,但 ...

8 如何根据深度区分2D和3D对象

我试图根据深度信息通过代码区分真实的3D对象及其图片-2D对象。 但是,图片(= 2D图像)可能是从嘈杂的背景中捕获的,所以我需要的不仅仅是复杂的深度信息,还需要更复杂的东西; 同样,深度相机的输出本身可能会嘈杂,并且模型形状和深度信息之间没有直接的关联。 任何建议-学术来源作为实 ...

9 3d对象的2d投影

我找到了一些解决方案,但是它们比我需要的算法更复杂。 我的问题是,我有一个3d对象,该对象由3d空间中的点和像元表示,并且我想在不渲染的情况下一侧(与xz,xy和yz等垂直于一个轴)拍摄3d对象的图片(算法I会这样写),因为我需要点和单元格才能在其他画家(而非3d)中进行绘制和缩放。 因此, ...

10 如何在OpenGL中的3D空间中移动2D对象

基本上,我在C ++中的OpenGL中在3d空间中创建2d对象。 它的创建方式位于y轴上。 我如何移动它使其位于x轴上? 我尝试了glRotatef和glTranslatef,但是它不起作用。 有人可以帮忙吗? 更新:我实际上是在制作太阳系。 行星位于x轴上。 但是每次我尝试通 ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2022 STACKOOM.COM