| 63 | } |
| 64 | |
| 65 | void ShaderObjectData::Load(Matrix& worldMatrix, Matrix& prevWorldMatrix, Rectangle& lightmapUVsArea, Float3& geometrySize, float& perInstanceRandom, float& worldDeterminantSign, float& lodDitherFactor) const |
| 66 | { |
| 67 | worldMatrix.SetRow1(Float4(Float3(Raw[0]), 0.0f)); |
| 68 | worldMatrix.SetRow2(Float4(Float3(Raw[1]), 0.0f)); |
| 69 | worldMatrix.SetRow3(Float4(Float3(Raw[2]), 0.0f)); |
| 70 | worldMatrix.SetRow4(Float4(Raw[0].W, Raw[1].W, Raw[2].W, 1.0f)); |
| 71 | prevWorldMatrix.SetRow1(Float4(Float3(Raw[3]), 0.0f)); |
| 72 | prevWorldMatrix.SetRow2(Float4(Float3(Raw[4]), 0.0f)); |
| 73 | prevWorldMatrix.SetRow3(Float4(Float3(Raw[5]), 0.0f)); |
| 74 | prevWorldMatrix.SetRow4(Float4(Raw[3].W, Raw[4].W, Raw[5].W, 1.0f)); |
| 75 | geometrySize = Float3(Raw[6]); |
| 76 | perInstanceRandom = Raw[6].W; |
| 77 | worldDeterminantSign = Raw[7].X; |
| 78 | lodDitherFactor = Raw[7].Y; |
| 79 | Float2 lightmapUVsAreaPackedAliased(Raw[7].Z, Raw[7].W); |
| 80 | Half4 lightmapUVsAreaPacked(*(Half4*)&lightmapUVsAreaPackedAliased); |
| 81 | *(Float4*)&lightmapUVsArea = lightmapUVsAreaPacked.ToFloat4(); |
| 82 | } |
| 83 | |
| 84 | bool RenderLightData::CanRenderShadow(const RenderView& view) const |
| 85 | { |