DX11(十):纹理映射

06/12/2020

基础纹理介绍

纹理坐标系(UV坐标系)

一张图片有横坐标轴和竖坐标轴,横坐标轴叫u,竖坐标轴叫v,原点在图片的左上角

纹理读取

DirectXTK中有DDSTextureLoader和WICTextureLoader的源文件和头文件,可以方便的解析dds和wic文件格式

createDDSTextureFromFile函数–从文件读取DDS纹理

HRESULT CreateDDSTxtureFromFile(
	ID3D11Device* d3dDevice,			//Device
	const wchar_t* szFileName,			//dds file name
	ID3D11Resource** texture,			//输出一个指向资源接口类的接口
	ID3D11ShaderResourceView** textureView,	//输出一个指向着色器资源视图的指针
	size_t maxsize = 0,
	DDS_ALPHA_MODE* alphaMode = nullptr
	
);

createWICTextureFromFile函数

HRESULT CreateWICTxtureFromFile(
	ID3D11Device* d3dDevice,			//Device
	const wchar_t* szFileName,			//dds file name
	ID3D11Resource** texture,			//输出一个指向资源接口类的接口
	ID3D11ShaderResourceView** textureView,	//输出一个指向着色器资源视图的指针
	size_t maxsize = 0
);

注意:这里主要为了创建一个ID3D11ShaderResourceView着色器资源视图,因为纹理资源不能直接使用

HLSL 变动

  • 加入uv顶点
  • 加入纹理
  • 加入采样器
Texture2D gTex:register(t0); //保存2D纹理信息
SamplerState gSamLinear:register(s0);	//确定采样器如何采样

struct VertexPosNormalTex
{
   
	float3 PosL:POSITION;
	float3 NormalL:NORMAL;
	float2 Tex:TEXCOORD;
};

顶点布局

struct VertexPosNormalTex
{
   
	DirectX::XMFLOAT3 pos;
	DirectX::XMFLOAT3 normal;
	DirectX::XMFLOAT2 tex;
	static const D3D11_INPUT_ELEMENT_DESC inputLayout
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值