纹理 和 顶点 在OpenGL 里面的值
2014-09-15 22:17
477 查看
以下是 纹理的大小
(落于 [0.0 - 1.0]区间内)
和
顶点的大小([-1..1][-1..1])
char character = text[i];float uv_x = (character%16)/16.0f;float uv_y = (character/16)/16.0f;
OpenGL3.0教程 第十一课:2D文本 摘录
分享0这样做是可行的(基本可行,详见下文),因为A的ASCII值为65。65%16 = 1,因此A位于第1列(列号从0开始)。65/16 = 4,因此A位于第4行(这是整数除法,所以结果不是想象中的4.0625)两者都除以16.0以使之落于[0.0 - 1.0]区间内,这正是OpenGL纹理所需的------------------------------------------------------------------------------------------------------------------------------------------------------------------------void main(){// Output position of the vertex, in clip space// map [0..800][0..600] to [-1..1][-1..1]vec2 vertexPosition_homoneneousspace = vertexPosition_screenspace - vec2(400,300); // [0..800][0..600] -> [-400..400][-300..300]vertexPosition_homoneneousspace /= vec2(400,300);gl_Position = vec4(vertexPosition_homoneneousspace,0,1);// UV of the vertex. No special space for this one.UV = vertexUV;}注意非常重要的一点:这些坐标位于[0,800][0,600]范围内。也就是说,这里不需要矩阵。vertexshader只需简单换算就可以把这些坐标转换到[-1,1][-1,1]范围内(也可以在C++代码中完成这一步)。
相关文章推荐
- openGL 顶点,坐标系,纹理坐标
- OpenGL中纹理坐标和顶点坐标表示
- openGL 顶点,坐标系,纹理坐标
- openGL 顶点,坐标系,纹理坐标
- OpenGL 纹理坐标 和 顶点坐标映射关系 详解
- openGL 顶点,坐标系,纹理坐标
- OpenGL蓝宝书第六章代码疑虑:为什么使用了GL_TEXTURE_1D??纹理和顶点间的映射是如何实现?
- OpenGL 顶点数组与缓冲区对象进行渲染(含纹理贴图)
- OpenGL-设置纹理和顶点数据对应出现的问题
- OpenGL 纹理坐标 和 顶点坐标映射关系 详解
- OpenGL纹理和顶点对应,纹理没有在前面导致的结果
- OpenGL学习七:顶点数组
- qt5.6.0 opengl —— 纹理贴图
- OpenGL系列教程之八:OpenGL顶点缓冲区对象(VBO)
- C#+OpenGL编程之OpenGL 多重纹理
- opengl顶点数组
- OpenGL纹理映射
- Qt openGL 使用QImage 生成二维纹理
- OpenGL纹理数据块
- DirectX 3D_基础之光照 材质 顶点法线 光源 纹理映射 纹理坐标 多级纹理 纹理过滤