mirror of
https://github.com/jmarshall23/DoomRTX.git
synced 2026-08-16 00:01:53 +02:00
Decal screen space is now projection based.
This commit is contained in:
@@ -1980,18 +1980,22 @@ static bool CamWnd_BuildDecalAtPoint(CCamWnd* cam, const CPoint& point, renderWo
|
||||
}
|
||||
CamWnd_DecalColorFromSelectedMaterial(decal.material, decal.color);
|
||||
decal.origin = hitPoint;
|
||||
decal.normal = hitNormal;
|
||||
if ((decal.normal * dir) > 0.0f) {
|
||||
decal.normal = -decal.normal;
|
||||
}
|
||||
decal.axisU = decal.normal.Cross(cam->Camera().vup);
|
||||
decal.normal = -dir;
|
||||
decal.normal.Normalize();
|
||||
|
||||
decal.axisU = cam->Camera().vright - decal.normal * (cam->Camera().vright * decal.normal);
|
||||
if (decal.axisU.LengthSqr() < 0.0001f) {
|
||||
decal.axisU = decal.normal.Cross(cam->Camera().vright);
|
||||
decal.axisU = decal.normal.Cross(cam->Camera().vup);
|
||||
}
|
||||
decal.axisU.Normalize();
|
||||
decal.axisV = decal.normal.Cross(decal.axisU);
|
||||
CamWnd_RotateDecalBasis(decal, s_camWndDecalPreviewRotation);
|
||||
decal.size = CamWnd_DecalFloat("size", "64");
|
||||
decal.depth = CamWnd_DecalFloat("depth", "8");
|
||||
decal.depth = CamWnd_DecalFloat("depth", "0");
|
||||
const float minProjectorDepth = decal.size * 2.0f;
|
||||
if (decal.depth < minProjectorDepth) {
|
||||
decal.depth = minProjectorDepth;
|
||||
}
|
||||
decal.opacity = CamWnd_DecalFloat("opacity", "1");
|
||||
if (hitSource) {
|
||||
*hitSource = localHitSource;
|
||||
|
||||
Reference in New Issue
Block a user