DirectX を (再) 学習しており、HLSL コーディングに移行しました。カスタム .fx ファイルを使用する前に、クワッドの頂点バッファーを持つゲーム用のスカイボックスを作成しました。すべてが正常に機能しました...テクスチャがマッピングされ、美しくラップされました。しかし、頂点を管理するための HLSL セットアップができたので、クワッドが交わる独特の継ぎ目があります。テクスチャはすべて適切に並んでいます。このいまいましい継ぎ目を取り除くことはできません!
問題はtexCubeにあると思う傾向があります...または、ここにあるすべてのテクスチャ情報です。DX でクワッドをテクスチャリングしています... 2 つの間のリンクがまだ完全に得られていないだけかもしれません..よくわかりません。とにかく、事前に助けてくれてありがとう!
.fx ファイルは次のとおりです。
float4x4 World;
float4x4 View;
float4x4 Projection;
float3 CameraPosition;
Texture SkyBoxTexture;
samplerCUBE SkyBoxSampler = sampler_state
{
texture = <SkyBoxTexture>;
minfilter = ANISOTROPIC;
mipfilter = LINEAR;
AddressU = Wrap;
AddressV = Wrap;
AddressW = Wrap;
};
struct VertexShaderInput
{
float4 Position : POSITION0;
};
struct VertexShaderOutput
{
float4 Position : POSITION0;
float3 TextureCoordinate : TEXCOORD0;
};
VertexShaderOutput VertexShaderFunction(VertexShaderInput input)
{
VertexShaderOutput output;
float4 worldPosition = mul(input.Position, World);
float4 viewPosition = mul(worldPosition, View);
output.Position = mul(viewPosition, Projection);
float4 VertexPosition = mul(input.Position, World);
output.TextureCoordinate = VertexPosition - CameraPosition;
return output;
}
float4 PixelShaderFunction(VertexShaderOutput input) : COLOR0
{
return texCUBE(SkyBoxSampler, normalize(input.TextureCoordinate));
}
technique Skybox
{
pass Pass1
{
VertexShader = compile vs_2_0 VertexShaderFunction();
PixelShader = compile ps_2_0 PixelShaderFunction();
}
}