实现纹理贴图

本文介绍了如何在OpenGL中实现纹理贴图。首先在vertex shader中添加纹理坐标变量,并通过varying变量将其传递到fragment shader。在fragment shader中,使用uniform sampler2D采样纹理,并结合纹理坐标获取颜色。主代码部分涉及纹理坐标插槽、贴图插槽和纹理对象的设置。最后,在绘制时激活纹理并将其与shader中的纹理插槽关联。
摘要由CSDN通过智能技术生成

实现纹理贴图

  1. 在vertex shader中添加纹理坐标的变量:attribute vec2 texcoord,因为需要纹理坐标才能实现纹理贴图;还要添加一个varying变量,因为这个texcoord是从vertex shader中传进来,到fragment shader中使用的,而fragment shader中没有attribute这种类型的变量,所以把texcoord在vertex shader中通过varying类型的变量传到fragment shader中,具体方法是:在main函数中直接赋值就可以
	attribute vec2 texcoord;
	varying vec2 V_Texcoord;
	void main()
	{
		V_Texcoord = texcoord;
	}
  1. 在fragment shader中添加纹理采样器:uniform sampler2D U_Texture,我们把纹理传进来之后,就是用他来采样纹理。再声明纹理坐标:varying vec2 V_Texcoord。最后gl_FragColor叠加上纹理的颜色,这样颜色不仅受它自身颜色的影响还受纹理颜色的影响。获取纹理颜色的方法是调用opengl shader中的内置函数texture2D(),第一个参数传纹理采样器,第二个参数传纹理坐标。
	uniform sampler2D U_Texture;
	varying vec2 V_Texcoord;
	void main()
	{
		gl_FragColor = V_Color * texture2D(U_Texture, V_Texcoord);
	}
  1. 在主代码中࿰
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值