从零开始学习 MME 的 HLSL 编程(1)

本文由 简悦 SimpRead 转码, 原文地址 www.bilibili.com

作者:KarlvonDonitz

本次对应第一节教程的文字版解释 float4x4 WVP : WORLDVIEWPROJECTION; 此代码表示命名 WVP 为世界视察投影变换矩阵,不清楚什么是变换矩阵可以查看:‍struct

本次对应第一节教程的文字版解释

float4x4 WVP      : WORLDVIEWPROJECTION;

此代码表示命名 WVP 为世界视察投影变换矩阵,不清楚什么是变换矩阵可以查看:

struct VS_OUTPUT {

float4 Pos        : POSITION; 

};

此代码表示 VertexShader 将带有齐次坐标的位置输出,不清楚什么是齐次坐标的还可以戳下上面的文章来了解。

VS_OUTPUT Basic_VS(float4 Pos : POSITION)

此代码表示从原来的 VertexShader 的 Output 中获得位置信息

{

VS_OUTPUT Out;

Out.Pos = mul(Pos,WVP);

将位置信息和世界视察投影变换矩阵进行变换,变成屏幕看到的效果,不清楚变换方式的,可以看:

return Out;

输出变换后的顶点信息

}

float4 Basic_PS(VS_OUTPUT IN) : COLOR0

从 VertexShader 中拿到顶点信息,并且由之后的 PixelShader 过程上色

{

return float(1,1,1,1);

将顶点上色,颜色以 RGB(0-1 的浮点)和透明通道代表,此处是纯白色。不了解 RGB 的可以看:

}

technique MainTec {

pass DrawObject {

VertexShader = compile vs_2_0 Basic_VS();

PixelShader  = compile ps_2_0 Basic_PS();

}

}

technique MainTec_ss {

pass DrawObject {

VertexShader = compile vs_2_0 Basic_VS();

PixelShader  = compile ps_2_0 Basic_PS();

}

}

将之前写的代码进行编译,编译版本都是 2.0

评论