Partial fix to near plane clipping shadows

This commit is contained in:
2021-08-28 21:25:59 +01:00
parent 55f1d89a5e
commit d23f36ea95
5 changed files with 10 additions and 4 deletions
+1 -1
View File
@@ -3,7 +3,7 @@ layout (lines_adjacency) in;
layout (triangle_strip, max_vertices = 4) out; layout (triangle_strip, max_vertices = 4) out;
layout (std140, binding = 0) uniform TheMat { mat4 theMat; } ; layout (std140, binding = 0) uniform TheMat { mat4 theMat; } ;
uniform vec3 lightPos; uniform vec3 lightPos;
vec4 shift (vec4 p) { return (vec4 (p.xyz + (1000*(p.xyz-lightPos)), 1));} vec4 shift (vec4 p) { return (vec4 (p.xyz + (100000*(p.xyz-lightPos)), 1));}
vec4 f (vec4 p) {return (theMat * p);} vec4 f (vec4 p) {return (theMat * p);}
void main() void main()
{ {
+1 -1
View File
@@ -173,7 +173,7 @@ startInventory = IM.fromList (zip [0..20]
,remoteLauncher ,remoteLauncher
,remoteBomb ,remoteBomb
,grenade ,grenade
,spawnGun (lamp 20) ,spawnGun (lamp 5)
,lasGun ,lasGun
,flamer ,flamer
,poisonSprayer ,poisonSprayer
+1 -1
View File
@@ -35,7 +35,7 @@ module Dodge.Item.Weapon.TriggerType
import Dodge.Data import Dodge.Data
import Dodge.SoundLogic import Dodge.SoundLogic
import Dodge.Creature.Action (startReloadingWeapon) import Dodge.Creature.Action (startReloadingWeapon)
import Dodge.WorldEvent (muzzleFlashAt,tempLightForAt) import Dodge.WorldEvent (tempLightForAt)
import Dodge.WorldEvent.Cloud import Dodge.WorldEvent.Cloud
import Dodge.RandomHelp import Dodge.RandomHelp
import Dodge.Item.Attachment.Data import Dodge.Item.Attachment.Data
+3 -1
View File
@@ -53,7 +53,9 @@ doDrawing pdata w = do
-- poke wall points and colors -- poke wall points and colors
nWalls <- poke224s (shadVBOptr $ _wallTextureShader pdata) wallPointsCol nWalls <- poke224s (shadVBOptr $ _wallTextureShader pdata) wallPointsCol
nSils <- pokePoint3s (shadVBOptr $ _lightingLineShadowShader pdata) nSils <- pokePoint3s (shadVBOptr $ _lightingLineShadowShader pdata)
$ youSil w ++ _foregroundEdgeVerx w $
--youSil w ++
_foregroundEdgeVerx w
-- poke foreground geometry and floor -- poke foreground geometry and floor
let addC (V2 xx yy) = V3 xx yy 0 let addC (V2 xx yy) = V3 xx yy 0
nsurfVs <- pokePoint3s (shadVBOptr $ _lightingSurfaceShader pdata) nsurfVs <- pokePoint3s (shadVBOptr $ _lightingSurfaceShader pdata)
+4
View File
@@ -72,14 +72,18 @@ createLightMap pdata lightPoints nWalls nSils nsurfVs = do
currentProgram $= Just (_shaderProgram $ _lightingLineShadowShader pdata) currentProgram $= Just (_shaderProgram $ _lightingLineShadowShader pdata)
uniform (head $ _shaderCustomUnis $ _lightingLineShadowShader pdata) uniform (head $ _shaderCustomUnis $ _lightingLineShadowShader pdata)
$= Vector3 x y z $= Vector3 x y z
depthClamp $= Enabled
drawShader (_lightingLineShadowShader pdata) nSils drawShader (_lightingLineShadowShader pdata) nSils
depthClamp $= Disabled
cullFace $= Just Front cullFace $= Just Front
stencilOp $= (OpKeep,OpKeep,OpDecr) stencilOp $= (OpKeep,OpKeep,OpDecr)
currentProgram $= Just (_shaderProgram $ _lightingOccludeShader pdata) currentProgram $= Just (_shaderProgram $ _lightingOccludeShader pdata)
drawShader (_lightingOccludeShader pdata) nWalls drawShader (_lightingOccludeShader pdata) nWalls
currentProgram $= Just (_shaderProgram $ _lightingLineShadowShader pdata) currentProgram $= Just (_shaderProgram $ _lightingLineShadowShader pdata)
depthClamp $= Enabled
drawShader (_lightingLineShadowShader pdata) nSils drawShader (_lightingLineShadowShader pdata) nSils
depthClamp $= Disabled
-- draw geometry surfaces -- draw geometry surfaces
cullFace $= Just Back cullFace $= Just Back