1 回答
TA贡献1982条经验 获得超2个赞
我不知道 4 个月后您是否还需要答案,但是:
如果您有一个正确的球体模型(如使用 Blender 创建的 obj 文件)和正确的 uv 信息,您只需要导入该模型(使用 assimp 或任何其他导入器)并在渲染过程中应用纹理。
你的问题有点含糊,因为我不知道你是否使用着色器。
我的方法是:
1:使用assimp库或任何其他导入库导入模型
2:实现顶点和片段着色器,并在片段着色器中为纹理包含一个sampler2Duniform
3:在渲染过程中选择你的着色器程序 id [ GL.UseProgram(...) ] 然后将顶点和纹理 uv 和纹理像素(作为统一)信息上传到着色器。
4:使用标准的顶点着色器,如下所示:
#version 330
in vec3 aPosition;
in vec2 aTexture;
out vec2 vTexture;
uniform mat4 uModelViewProjectionMatrix;
void main()
{
vTexture = aTexture;
gl_Position = uModelViewProjectionMatrix * vec4(aPosition, 1.0);
}
5:使用标准片段着色器,如下所示:
#version 330
in vec2 vTexture;
uniform sampler2D uTexture;
out vec4 fragcolor;
void main()
{
fragcolor = texture(uTexture, vTexture);
}
如果您需要具有矩形 uv 映射的球体的有效 obj 文件,请随意删除一行(或两行)。
- 1 回答
- 0 关注
- 211 浏览
添加回答
举报