官方的NativeRenderPlugin Sample只是画了一个屏幕空间的三角形, 怎么改成世界空间的呢? 以D3D11为例:
Native:
struct ConstantBuffer
{
DirectX::XMMATRIX World;
DirectX::XMMATRIX View;
DirectX::XMMATRIX Projection;
} g_CB;
extern "C" void UNITY_INTERFACE_EXPORT UNITY_INTERFACE_API SetCameraMatrix(float vm[], float pm[])
{
g_CB.View = XMLoadFloat4x4(&DirectX::XMFLOAT4X4(vm));
g_CB.Projection = XMLoadFloat4x4(&DirectX::XMFLOAT4X4(pm));
}
由于DirectX Math已经是row major的, 所以不用转置了.
Shader:
cbuffer MyCB : register(b0)
{
float4x4 worldMatrix;
float4x4 viewMatrix