使用 GL_POLYGON 绘制圆的纹理映射

2024-03-07

我正在尝试使用将纹理映射到圆形GL_POLYGON使用此代码:

void drawCircleOutline(Circle c, int textureindex)
{
    float angle, radian, x, y;       // values needed by drawCircleOutline

    glEnable(GL_TEXTURE_2D);
    glBindTexture(GL_TEXTURE_2D, textureLib[textureindex]);

    glBegin(GL_POLYGON);

    for (angle=0.0; angle<360.0; angle+=2.0)
    {
        radian = angle * (pi/180.0f);

        x = (float)cos(radian) * c.r  + c.pos.x;
        y = (float)sin(radian) * c.r  + c.pos.y;

        glTexCoord2f(x, y);
        glVertex2f(x, y);
    }

    glEnd();
    glDisable(GL_TEXTURE_2D);
}

运行时看起来像这样。

并且应该看起来像这样:


Try:

radian = angle * (pi/180.0f);

xcos = (float)cos(radian);
ysin = (float)sin(radian);
x = xcos * c.r  + c.pos.x;
y = ysin * c.r  + c.pos.y;
tx = xcos * 0.5 + 0.5;
ty = ysin * 0.5 + 0.5;

glTexCoord2f(tx, ty);
glVertex2f(x, y);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 GL_POLYGON 绘制圆的纹理映射 的相关文章

  • 几何着色器中的宽线表现得很奇怪

    我正在尝试使用几何着色器渲染任意宽线 在屏幕空间中 乍一看似乎一切都很好 但在某些视图位置上 线条渲染不正确 左侧图像呈现正确的渲染 正 X Y 和 Z 轴上的三条线 2 像素宽 当相机移动到原点附近 实际上靠近线条 时 线条会像正确的图像
  • 鉴于 GPU 有任务队列并且是异步的,计算 FPS 的正确方法是什么?

    我始终认为计算 FPS 的正确方法是简单地计算绘制循环迭代所需的时间 互联网上的大部分内容似乎都是一致的 But 现代显卡被视为异步服务器 因此绘制循环会发出 GPU 上已有的顶点 纹理 等数据的绘制指令 这些调用不会阻塞调用线程 直到 G
  • 基于 Q3DScatter 的自定义图表,QCustom3DItem 运行缓慢

    我想制作一个带条形的 3D 图表 条形颜色取决于其大小 两个都Qt 条形图和散点图类型 https doc qt io qt 5 qtdatavisualization overview html接近我正在寻找的东西 我最终创建了一个基于的
  • 使用 GLFW + GLEW 时 glGenFramebuffers() 访问冲突

    我收到此错误 执行位置 0x00000000 时发生访问冲突 当我在 Windows 上使用 GLFW GLEW 时 我使用的是 Windows 7 我也有自己的实现 从头开始 它创建一个窗口 初始化 OpenGL 上下文 初始化 GLEW
  • cmake 在 OS X 上找不到 gl.h

    我在 OS X 10 10 上并尝试使用 GLUT 和 OpenGL 构建一个 C 项目 我将其简化为展示我的问题的最小示例 我有以下内容CMakeLists txt cmake minimum required VERSION 2 8 F
  • 如何通过着色器管道传递顶点颜色?

    我试图通过顶点 几何和片段着色器传递顶点颜色 glBegin GL POINTS glVertex3f 2 0f 0 0f 0 0 glColor3f 0 0 1 0 0 0 glVertex3f 2 0f 0 0f 0 0 glColor
  • 无法将简单的无符号字节 RGB 纹理映射到四边形:

    我有一个非常简单的程序 将虚拟红色纹理映射到四边形 下面是 C 中的纹理定义 struct DummyRGB8Texture2d uint8 t data 3 4 int width int height DummyRGB8Texture2
  • 尝试 glUseProgram 时出现 Opengl 错误 1281

    我有什么想法可以调试这个opengl进一步错误 1281 我正在从文件加载源代码 编译 链接 然后尝试检查错误glUseProgram 在我的对象的绘制方法中 log info gl2 glIsProgram shaderProgram t
  • 给定焦点和相机主中心,如何创建透视投影矩阵

    我设法使用 OpenCV 获取相机的内在和外在参数 因此我有 fx fy cx 和 cy 我还有屏幕 图像的宽度和高度 但是如何根据这些参数创建 OpenGL 透视投影矩阵呢 glFrustum 展示了如何在给定 Z 近 Z 远以及图像宽度
  • OpenGL 超级采样抗锯齿?

    在办公室 我们正在使用旧的 GLX Motif 软件 该软件使用 OpenGL 的 AccumulationBuffer 来实现保存图像的抗锯齿功能 我们的问题是Apple从其所有驱动程序中删除了AccumulationBuffer 从OS
  • VBO - 没有指数化的指数化

    我正在尝试将 VBO 与元素数组缓冲区一起用于我的三角形 如下所示 glBindBuffer GL ARRAY BUFFER g Buffer 0 glVertexPointer 3 GL FLOAT 0 BUFFER OFFSET 0 g
  • libgdx 中帧缓冲区的结果不明确

    我得到以下奇怪的结果帧缓冲区 http libgdx badlogicgames com nightlies docs api com badlogic gdx graphics glutils FrameBuffer htmllibgdx
  • 对 VBO 中的特定三角形使用不同的纹理

    我有 9 个由三角形组成的四边形 如下所示 我在用着VBO存储有关它们的数据 它们的位置和纹理坐标 我的问题是 是否可以仅使用一个来使四边形 5 具有与其余四边形不同的纹理VBO and shader 绿色代表纹理 1 黄色代表纹理 2 到
  • 使用 openGL、SOIL 加载图像

    我尝试了很多使用 SOIL 在 openGL 中加载和显示图像的示例 运行下面的源代码时 它仅显示一个没有图像的白色四边形 我尝试打开一个名为 foto 的图像 我将图像文件放在程序的文件夹中 bool keyStates new bool
  • OpenGL 说“from_param 收到了一个不连续的数组”

    安装 Yosemite 后 我必须升级 numpy PyOpenGL 等 现在 以前运行的程序给了我以下堆栈跟踪 file latebind pyx line 44 in OpenGL accelerate latebind Curry c
  • 如何安装适用于 Windows C++ 的最新版本 OpenGL?

    我正在使用 Visual Studio 2010 运行 Windows 7 包含的 OpenGL 版本 include 是版本 1 1 我希望使用合理的当前版本 某种版本 3 或 4 我需要做什么才能达到该状态 OpenGL SDK 页面位
  • OpenGL 中连续暂停

    void keyPress unsigned char key int x int y int i switch key case f i 3 while i x pos 3 sleep 100 glutPostRedisplay 上面是在
  • 阻止 OpenGL.framework 在 Cocoa 应用程序中加载

    我的应用程序链接到这些框架 Cocoa Framework AppKit Framework CoreData Framework Foundation Framework 请注意 OpenGL Framework 是NOT已链接 但是 设
  • 使用 GLSL 着色器在同一片段着色器中定义的多个子例程类型无法正常工作

    我正在开发一个使用 GLSL 着色器的程序 我编写了 2 种不同的方法来用 2 种不同的方法计算 ADS 环境光 漫反射 镜面反射 着色 为了正确完成这项工作 我使用子例程来使用一种或另一种方法来计算 ADS 着色 这是片段着色器代码的一部
  • 为什么 OpenGL 给对象提供句柄而不是指针?

    OpenGL 的传统是让用户使用 unsigned int 句柄来操作 OpenGL 对象 为什么不直接给出一个指针呢 与指针相比 唯一 ID 有何优点 TL DR OpenGL ID 不会双射映射到内存位置 单个 OpenGL ID 可能

随机推荐