This commit is contained in:
2025-11-11 17:22:55 +00:00
parent c5034b3c4c
commit 4d59d521ac
6 changed files with 35 additions and 57 deletions
-13
View File
@@ -1,13 +0,0 @@
#version 450 core
layout(points) in;
layout(triangle_strip, max_vertices = 4) out;
layout(std140, binding = 0) uniform TheMat { mat4 theMat; };
void main() {
vec2 p1 = gl_in[0].gl_Position.xy;
vec2 p2 = gl_in[0].gl_Position.zw;
gl_Position = theMat * vec4(p1,100,1); EmitVertex();
gl_Position = theMat * vec4(p1,5000,1); EmitVertex();
gl_Position = theMat * vec4(p2,100,1); EmitVertex();
gl_Position = theMat * vec4(p2,5000,1); EmitVertex();
EndPrimitive();
}
-5
View File
@@ -1,9 +1,4 @@
#version 450 core
//layout (location = 0) in vec4 poss;
//void main()
//{
// gl_Position = poss;
//}
struct PosTex { vec4 pospos; vec4 texang; };
layout (std140, binding = 0) uniform TheMat { mat4 theMat; } ;
layout (std430, binding = 2) readonly buffer Pos { PosTex data[]; };
+9 -14
View File
@@ -12,9 +12,7 @@ vec3 closestPointOnSeg3 (vec3 a,vec3 b, vec3 p) {
float x = closestPointOnLineParam3(a,b,p);
if (x < 0) {
return a;
} else{ if (x > 1) { return b; }
{ return a + (x * (b- a));}
}
} else{ return (x > 1 ? b: a + (x * (b- a))); }
}
vec4 shift(vec4 p) { return (vec4(p.xyz + (10000 * (p.xyz - lightPos)), 1)); }
vec4 shiftBy(float x, vec4 p) {
@@ -32,11 +30,7 @@ vec4 projNear (vec4 pos)
vec4 shiftNear(vec4 pos)
{
vec4 sp = shift(pos);
if (sp.z > 100) {
return projNear(pos);
} else {
return sp;
}
return (sp.z > 100 ? projNear(pos) : sp);
}
int ks[6] =
{0,1,2 // 2--3
@@ -59,9 +53,6 @@ void main()
vec3 lightDir2 = p1.xyz - lightPos.xyz;
vec4 p2 = shiftNear(p0);
vec4 p3 = shiftNear(p1);
vec4 ps[4] = {p0,p1,p2,p3};
vec4 sp[4] = {p1,p0,p3,p2};
gl_Position = vec4(0,0,0,1);
// first test if the edge is part of the silhouette
// that is, if the normals of the faces connected by the edge point are in
// "different directions" wrt the light direction
@@ -70,9 +61,13 @@ void main()
// using <= rather than < seems to get rid of overlapping shadow
// artefacts
{
if (dot(n0, lightDir) > 0) {gl_Position = theMat * sp[k];}
else {gl_Position = theMat * ps[k]; }
//gl_Position = vec4(1,1,1,0);
if (dot(n0, lightDir) > 0)
{
vec4 sp[4] = {p1,p0,p3,p2};
gl_Position = theMat * sp[k];}
else {
vec4 ps[4] = {p0,p1,p2,p3};
gl_Position = theMat * ps[k]; }
}
else {gl_Position = vec4(1,1,1,0);}
}
+1 -1
View File
@@ -55,7 +55,7 @@ data RenderData = RenderData
, _chasmVBO :: VBO
, _chasmShader :: Shader
, _wallVBO :: VBO
, _wallShader :: Shader
-- , _wallShader :: Shader
, _cloudVBO :: VBO
, _cloudShader :: Shader
, _cloudEBO :: EBO
+2 -2
View File
@@ -94,7 +94,7 @@ preloadRender = do
let wallverxstrd = 8
wallvbo <- setupVBO (floatSize * wallverxstrd)
winvbo <- setupVBO (floatSize * 8)
wallshader <- makeShaderUsingVBO "wall/basic" [vert, geom, frag] (toFloatVAs [4, 4]) pmPoints wallvbo
-- wallshader <- makeShaderUsingVBO "wall/basic" [vert, geom, frag] (toFloatVAs [4, 4]) pmPoints wallvbo
putStrLn "Setup lighting shaders"
lightingWallShadShad <-
--makeShaderUsingVBO "lighting/wallShadow" [vert, geom] (toFloatVAs [4]) pmPoints wallvbo
@@ -241,7 +241,7 @@ preloadRender = do
, _chasmVBO = chasmvbo
, _chasmShader = chasmshader
, _wallVBO = wallvbo
, _wallShader = wallshader
-- , _wallShader = wallshader
, _cloudVBO = cloudvbo
, _cloudShader = cloudshader
, _cloudEBO = cloudebo
+23 -22
View File
@@ -1592,8 +1592,8 @@ _cdtUp src/Dodge/Data/DoubleTree.hs 92;" f
_ceSideEffect src/Dodge/Data/Universe.hs 66;" f
_ceString src/Dodge/Data/Universe.hs 67;" f
_ceilingStencilShader src/Data/Preload/Render.hs 18;" f
_chasmShader src/Data/Preload/Render.hs 55;" f
_chasmVBO src/Data/Preload/Render.hs 54;" f
_chasmShader src/Data/Preload/Render.hs 56;" f
_chasmVBO src/Data/Preload/Render.hs 55;" f
_chasms src/Dodge/Data/CWorld.hs 33;" f
_ciFilter src/Dodge/Data/HUD.hs 25;" f
_ciInvIDs src/Dodge/Data/Combine.hs 9;" f
@@ -1622,9 +1622,9 @@ _clickPos src/Dodge/Data/Input.hs 42;" f
_clickWorldPos src/Dodge/Data/Input.hs 44;" f
_closeButtons src/Dodge/Data/HUD.hs 36;" f
_closeItems src/Dodge/Data/HUD.hs 35;" f
_cloudEBO src/Data/Preload/Render.hs 60;" f
_cloudShader src/Data/Preload/Render.hs 59;" f
_cloudVBO src/Data/Preload/Render.hs 58;" f
_cloudEBO src/Data/Preload/Render.hs 61;" f
_cloudShader src/Data/Preload/Render.hs 60;" f
_cloudVBO src/Data/Preload/Render.hs 59;" f
_clouds src/Dodge/Data/LWorld.hs 96;" f
_colorBlurShader src/Data/Preload/Render.hs 26;" f
_coolEnd src/Dodge/Data/TriggerType.hs 17;" f
@@ -1754,7 +1754,7 @@ _dsZoning src/Dodge/Data/World.hs 48;" f
_dtLeft src/Dodge/Data/DoubleTree.hs 29;" f
_dtRight src/Dodge/Data/DoubleTree.hs 29;" f
_dtValue src/Dodge/Data/DoubleTree.hs 29;" f
_dummyVAO src/Data/Preload/Render.hs 62;" f
_dummyVAO src/Data/Preload/Render.hs 63;" f
_dusts src/Dodge/Data/LWorld.hs 97;" f
_ebID src/Dodge/Data/EnergyBall/Type.hs 13;" f
_ebPos src/Dodge/Data/EnergyBall.hs 17;" f
@@ -1786,8 +1786,8 @@ _flankTarget src/Dodge/Data/ActionPlan.hs 129;" f
_flares src/Dodge/Data/LWorld.hs 108;" f
_flatShieldWlMIX src/Dodge/Data/Item/Params.hs 14;" f
_floorItems src/Dodge/Data/LWorld.hs 127;" f
_floorShader src/Data/Preload/Render.hs 53;" f
_floorVBO src/Data/Preload/Render.hs 52;" f
_floorShader src/Data/Preload/Render.hs 54;" f
_floorVBO src/Data/Preload/Render.hs 53;" f
_foreShapes src/Dodge/Data/LWorld.hs 132;" f
_fsDir src/Dodge/Data/ForegroundShape.hs 14;" f
_fsPos src/Dodge/Data/ForegroundShape.hs 13;" f
@@ -1847,6 +1847,7 @@ _ibtHeld src/Dodge/Data/Item/Combine.hs 16;" f
_ibtIntroScanType src/Dodge/Data/Item/Combine.hs 32;" f
_ibtPathing src/Dodge/Data/Item/Combine.hs 28;" f
_ibtTargeting src/Dodge/Data/Item/Combine.hs 21;" f
_ieshapeSSBO src/Data/Preload/Render.hs 49;" f
_ilCrID src/Dodge/Data/Item/Location.hs 30;" f
_ilEquipSite src/Dodge/Data/Item/Location.hs 35;" f
_ilInvID src/Dodge/Data/Item/Location.hs 31;" f
@@ -2194,7 +2195,7 @@ _scOptions src/Dodge/Data/Universe.hs 84;" f
_scPositionedMenuOption src/Dodge/Data/Universe.hs 86;" f
_scSelectionList src/Dodge/Data/Universe.hs 88;" f
_scTitle src/Dodge/Data/Universe.hs 83;" f
_screenTextureVAO src/Data/Preload/Render.hs 61;" f
_screenTextureVAO src/Data/Preload/Render.hs 62;" f
_scrollAmount src/Dodge/Data/Input.hs 40;" f
_scrollItemID src/Dodge/Data/World.hs 68;" f
_scrollItemID src/Dodge/Data/World.hs 77;" f
@@ -2400,9 +2401,9 @@ _vaType src/Shader/Data.hs 68;" f
_vaoName src/Shader/Data.hs 64;" f
_vboName src/Shader/Data.hs 80;" f
_vboPtr src/Shader/Data.hs 81;" f
_vboShapes src/Data/Preload/Render.hs 51;" f
_vboShapes src/Data/Preload/Render.hs 52;" f
_vboVertexBytes src/Shader/Data.hs 82;" f
_vboWindows src/Data/Preload/Render.hs 50;" f
_vboWindows src/Data/Preload/Render.hs 51;" f
_vcCoolDown src/Dodge/Data/Creature/Misc.hs 22;" f
_vcMaxCoolDown src/Dodge/Data/Creature/Misc.hs 21;" f
_vertices src/Polyhedra/Data.hs 22;" f
@@ -2425,8 +2426,8 @@ _waitThenAction src/Dodge/Data/ActionPlan.hs 76;" f
_waitThenTimer src/Dodge/Data/ActionPlan.hs 75;" f
_wallDamages src/Dodge/Data/LWorld.hs 119;" f
_wallSSBO src/Data/Preload/Render.hs 46;" f
_wallShader src/Data/Preload/Render.hs 57;" f
_wallVBO src/Data/Preload/Render.hs 56;" f
_wallShader src/Data/Preload/Render.hs 58;" f
_wallVBO src/Data/Preload/Render.hs 57;" f
_walls src/Dodge/Data/LWorld.hs 118;" f
_wanID src/Dodge/Data/LWorld.hs 158;" f
_wanPos src/Dodge/Data/LWorld.hs 157;" f
@@ -2645,7 +2646,7 @@ beltMag src/Dodge/Item/Ammo.hs 39;" f
bfsThenReturn src/Dodge/Creature/ReaderUpdate.hs 226;" f
bgateCalc src/Dodge/Inventory/SelectionList.hs 118;" f
bgunSound src/Dodge/HeldUse.hs 514;" f
bindFBO src/Render.hs 261;" f
bindFBO src/Render.hs 266;" f
bingate src/Dodge/Item/Scope.hs 109;" f
black src/Color.hs 27;" f
blank src/Picture/Base.hs 59;" f
@@ -2701,7 +2702,7 @@ brightX src/Color.hs 116;" f
btSPic src/Dodge/Render/ShapePicture.hs 129;" f
btText src/Dodge/Inventory/SelectionList.hs 237;" f
bufferEBO src/Shader/Bind.hs 28;" f
bufferPerspectiveMatrixUBO src/Dodge/Render.hs 481;" f
bufferPerspectiveMatrixUBO src/Dodge/Render.hs 496;" f
bufferPokedVBO src/Shader/Bind.hs 19;" f
bufferShaderLayers src/Shader/Bind.hs 36;" f
bulletBeltBracer src/Dodge/Item/Equipment.hs 67;" f
@@ -2794,7 +2795,7 @@ clang2S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 676;" f
clangS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 542;" f
cldtPropagateFold src/Dodge/DoubleTree.hs 358;" f
cleanUpPreload src/Preload.hs 10;" f
cleanUpRenderPreload src/Preload/Render.hs 269;" f
cleanUpRenderPreload src/Preload/Render.hs 276;" f
cleanUpSoundPreload src/Preload.hs 15;" f
cleanupHalted src/Sound.hs 117;" f
cleatLabel src/Dodge/Cleat.hs 30;" f
@@ -2880,7 +2881,7 @@ copier src/Dodge/Item/Scope.hs 88;" f
copierItemUpdate src/Dodge/Creature/State.hs 131;" f
copyItemToFloor src/Dodge/FloorItem.hs 14;" f
corDoor src/Dodge/Room/Room.hs 385;" f
cornerList src/Preload/Render.hs 246;" f
cornerList src/Preload/Render.hs 253;" f
corpseOrGib src/Dodge/Creature/Update.hs 111;" f
corridor src/Dodge/Room/Corridor.hs 17;" f
corridorBoss src/Dodge/LockAndKey.hs 133;" f
@@ -3556,7 +3557,7 @@ getCrMoveSpeed src/Dodge/Creature/Statistics.hs 50;" f
getCrsFromRooms src/Dodge/Room/Tutorial.hs 357;" f
getCrsFromRooms' src/Dodge/Room/Tutorial.hs 344;" f
getDebugMouseOver src/Dodge/Update.hs 374;" f
getDistortions src/Dodge/Render.hs 487;" f
getDistortions src/Dodge/Render.hs 502;" f
getEdgesCrossing src/Dodge/Path.hs 37;" f
getGrenadeHitEffect src/Dodge/HeldUse.hs 1264;" f
getInventoryPath src/Dodge/Inventory/Path.hs 9;" f
@@ -3707,7 +3708,7 @@ initWallZoning src/Dodge/Wall/Zone.hs 12;" f
initialRoomTree src/Dodge/Floor.hs 24;" f
initialWorld src/Dodge/Initialisation.hs 15;" f
initialisePlaying src/Sound.hs 77;" f
initializeGLState src/Preload/Render.hs 264;" f
initializeGLState src/Preload/Render.hs 271;" f
initializeOptionMenu src/Dodge/Menu/Option.hs 17;" f
initializeOptionMenuBO src/Dodge/Menu/Option.hs 30;" f
initializeTexture2D src/Framebuffer/Update.hs 205;" f
@@ -4332,7 +4333,7 @@ pincerP src/Dodge/Creature/Boid.hs 63;" f
pincerP' src/Dodge/Creature/Boid.hs 96;" f
pincerP'' src/Dodge/Creature/Boid.hs 106;" f
pincerP''' src/Dodge/Creature/Boid.hs 77;" f
pingPongBetween src/Render.hs 237;" f
pingPongBetween src/Render.hs 242;" f
pipe src/Dodge/Item/Craftable.hs 32;" f
pistol src/Dodge/Item/Held/Stick.hs 40;" f
pistolerRoom src/Dodge/Room/Room.hs 330;" f
@@ -4610,7 +4611,7 @@ renderDataResizeUpdate src/Preload/Update.hs 26;" f
renderFlatLighting src/Render.hs 107;" f
renderInfoListAt src/Dodge/Render/InfoBox.hs 17;" f
renderInfoListsAt src/Dodge/Render/InfoBox.hs 44;" f
renderLayer src/Render.hs 250;" f
renderLayer src/Render.hs 255;" f
renderLightingNoShadows src/Render.hs 48;" f
renderListAt src/Dodge/Render/List.hs 192;" f
renderShadows src/Render.hs 122;" f
@@ -4822,7 +4823,7 @@ setTiles src/Dodge/Layout.hs 67;" f
setTreeInts src/Dodge/Room/Tutorial.hs 98;" f
setViewDistance src/Dodge/Update/Camera.hs 239;" f
setViewPos src/Dodge/Creature/ReaderUpdate.hs 69;" f
setViewport src/Dodge/Render.hs 492;" f
setViewport src/Dodge/Render.hs 507;" f
setVol src/Dodge/Config.hs 47;" f
setWristShieldPos src/Dodge/Equipment.hs 49;" f
setWristShieldPos src/Dodge/Euse.hs 38;" f