its running i think

This commit is contained in:
Dynamitos
2023-11-09 22:15:51 +01:00
parent 19c3e559b1
commit effb0c6214
34 changed files with 299 additions and 249 deletions
+5
View File
@@ -9,3 +9,8 @@ struct MaterialParameter
float3 viewDir_TS;
}
struct VertexAttributes
{
MaterialParameter parameter : PARAMETER;
float4 clipPosition: SV_POSITION;
};
@@ -2,36 +2,6 @@ import VertexData;
import Common;
import Scene;
struct SkinnedMeshVertexAttributes : VertexAttributes
{
float4 clipPosition: SV_Position;
float3 worldPosition: POSITION0;
float2 texCoords: TEXCOORD0;
float3 normal: NORMAL0;
float3 tangent: TANGENT0;
float3 biTangent: BITANGENT0;
float3 getWorldPosition()
{
return worldPosition;
}
float2 getTexCoords()
{
return texCoords;
}
float3 getNormal()
{
return normal;
}
float3 getTangent()
{
return tangent;
}
float3 getBiTangent()
{
return biTangent;
}
}
struct SkinnedMeshVertexData : VertexData
{
SkinnedMeshVertexAttributes getAttributes(uint index, float4x4 transform)
+11 -32
View File
@@ -2,45 +2,24 @@ import Common;
import VertexData;
import MaterialParameter;
struct StaticMeshVertexAttributes : IVertexAttributes
{
float4 clipPosition: SV_Position;
float3 worldPosition: POSITION0;
float2 texCoords: TEXCOORD0;
float3 normal: NORMAL0;
float3 tangent: TANGENT0;
float3 biTangent: BITANGENT0;
MaterialParameter create()
{
MaterialParameter result;
result.worldPosition = worldPosition;
result.texCoords = texCoords;
result.normal = normal;
result.tangent = tangent;
result.biTangent = biTangent;
return result;
}
};
struct StaticMeshVertexData : IVertexData
{
typedef StaticMeshVertexAttributes VertexAttributes;
StaticMeshVertexAttributes getAttributes(uint index, float4x4 transform)
VertexAttributes getAttributes(uint index, float4x4 transform)
{
StaticMeshVertexAttributes attr;
VertexAttributes attributes;
MaterialParameter params;
float4 localPos = float4(positions[index], 1);
float4 worldPos = mul(transform, localPos);
float4 viewPos = mul(pViewParams.viewMatrix, worldPos);
float4 clipPos = mul(pViewParams.projectionMatrix, viewPos);
attr.clipPosition = clipPos;
attr.worldPosition = worldPos.xyz;
attr.texCoords = texCoords[index];
attr.normal = normals[index];
attr.tangent = tangents[index];
attr.biTangent = biTangents[index];
return attr;
params.worldPosition = worldPos.xyz;
params.texCoords = texCoords[index];
params.normal = normals[index];
params.tangent = tangents[index];
params.biTangent = biTangents[index];
attributes.parameter = params;
attributes.clipPosition = clipPos;
return attributes;
}
StructuredBuffer<float3> positions;
StructuredBuffer<float2> texCoords;
-6
View File
@@ -1,13 +1,7 @@
import MaterialParameter;
interface IVertexAttributes
{
MaterialParameter create();
};
interface IVertexData
{
associatedtype VertexAttributes : IVertexAttributes;
VertexAttributes getAttributes(uint index, float4x4 transform);
};
ParameterBlock<IVertexData> pVertexData;