在OpenGL中的三角形上绘制文本?

问题描述 投票:-3回答:1

我正在实现轮盘赌,但我已经完成了动画部分和整个轮盘部分。但是我无法在方向盘内显示文本。

c++ opengl glut game-development text-rendering
1个回答
0
投票

[我建议将车轮的每个数字部分制作为实例网格(在一次绘制调用中多次渲染的模型),并为每个数字放置8个UV映射面,如下所示:

roullette wheel mesh

对于单个数字,请使用两个中间的四边形/三角形对来对数字进行纹理映射。对于两位数字,将每个数字映射到一对四边形/三角形对。事先创建一个纹理,因为它几乎肯定会节省代码的时间和复杂性。像这样的东西,但是带有alpha:

numbers texture

您的顶点着色器可以使用实例ID来分配纹理坐标和顶点颜色,以设置每个部分的适当数字和背景颜色。类似于:

if (instanceID < 1) varying_color = rgb(0.0,1.0,0.0); //green
else if (instanceID%2 == 0) varying_color = rgb (0.0,0.0,0.0); //black
else varying_color = rgb(1.0,0.0,0.0); //red

这将设置板条的基础颜色。您还需要一个函数,该函数可根据instanceID和网格的顶点属性来设置UV值。

如果其中任何一个不清楚,请随时提出更多问题。

© www.soinside.com 2019 - 2024. All rights reserved.