浏览代码

Cleanups

/main
Robert Srinivasiah 7 年前
当前提交
167e7fed
共有 2 个文件被更改,包括 7 次插入9 次删除
  1. 14
      ScriptableRenderPipeline/HDRenderPipeline/HDRP/Camera/HDCamera.cs
  2. 2
      ScriptableRenderPipeline/HDRenderPipeline/HDRP/ShaderVariablesMatrixDefsHDCamera.hlsl

14
ScriptableRenderPipeline/HDRenderPipeline/HDRP/Camera/HDCamera.cs


void ConfigureStereoMatrices()
{
// will the matrices work?
for (uint eyeIndex = 0; eyeIndex < 2; eyeIndex++)
{
viewMatrixStereo[eyeIndex] = camera.GetStereoViewMatrix((Camera.StereoscopicEye)eyeIndex);

var invProjStereo = new Matrix4x4[2];
var invViewProjStereo = new Matrix4x4[2];
for (uint ei = 0; ei < 2; ei++)
for (uint eyeIndex = 0; eyeIndex < 2; eyeIndex++)
var proj = projMatrixStereo[ei];
invProjStereo[ei] = proj.inverse;
var proj = projMatrixStereo[eyeIndex];
invProjStereo[eyeIndex] = proj.inverse;
var view = viewMatrixStereo[ei];
var vp = proj * view;
invViewProjStereo[ei] = vp.inverse;
var vp = proj * viewMatrixStereo[eyeIndex];
invViewProjStereo[eyeIndex] = vp.inverse;
// corresponds to UnityPerPassStereo
// TODO: Migrate the other stereo matrices to HDRP-managed UnityPerPassStereo?
cmd.SetGlobalMatrixArray(HDShaderIDs._InvProjMatrixStereo, invProjStereo);
cmd.SetGlobalMatrixArray(HDShaderIDs._InvViewProjMatrixStereo, invViewProjStereo);
}

2
ScriptableRenderPipeline/HDRenderPipeline/HDRP/ShaderVariablesMatrixDefsHDCamera.hlsl


#define UNITY_MATRIX_V unity_StereoMatrixV[unity_StereoEyeIndex]
#define UNITY_MATRIX_I_V unity_StereoMatrixInvV[unity_StereoEyeIndex]
#define UNITY_MATRIX_P OptimizeProjectionMatrix(unity_StereoMatrixP[unity_StereoEyeIndex])
//#define UNITY_MATRIX_I_P unity_StereoCameraInvProjection[unity_StereoEyeIndex]
//#define UNITY_MATRIX_I_VP mul(UNITY_MATRIX_I_V, UNITY_MATRIX_I_P)
#define UNITY_MATRIX_I_VP _InvViewProjMatrixStereo[unity_StereoEyeIndex]
#define UNITY_MATRIX_MV mul(UNITY_MATRIX_V, UNITY_MATRIX_M)
#define UNITY_MATRIX_T_MV transpose(UNITY_MATRIX_MV)

正在加载...
取消
保存