Commit graph

48 commits

Author SHA1 Message Date
Rachael Alexanderson
3bf3af9441
- readd canvas check 2024-10-17 23:45:09 -04:00
Rachael Alexanderson
c2fd99a24d
Revert "- Actor.GetSpecies() is a non-destructive function"
This reverts commit ee5442c06b.
2024-10-17 21:28:52 -04:00
Rachael Alexanderson
ee5442c06b
- Actor.GetSpecies() is a non-destructive function 2024-10-14 17:31:18 -04:00
dileepvr
95b264bdb6
Isometric Mode and Robin (#2618)
* Feature-complete isometric mode fork.

* Dithered transparency condition tweaks.

* Dithered transparency for non-corpse monsters only (and missiles).

* SpectatorCamera vertical shift.

* Including math.h in hw_sprites.cpp to keep visual studio happy (it couldn't find M_SQRT2 definition).

* Defining MY_SQRT2 in hw_sprites.cpp to keep visual studio happy (it couldn't find M_SQRT2 definition).

* Defining MY_SQRT2 in r_utility.cpp also to keep visual studio happy.

* retrigger checks

* Have correct sprite angle-frame face the camera with orthographic projection enabled.

* Dithered Transparency now works properly on 3D floors. Moved that dither-trans flag setting code within hw_bsp.cpp to handle double-processing of linedefs. Added helper functions to FRenderViewpoint class 'bool IsOrtho()' and 'bool IsAllowedOoB()' to clean up checks everywhere in the code.

* Fixed indents. Added bbox property to subsector struct and use it instead of BSP nodes and Clippers (creating a bbox around viewpoint and checking for overlap) in orthographic mode when no fog of war is active. Turns out to be much faster. Though you need really big maps (Winter's Fury MAP01) to see a difference in fps.

* Non-linux checks don't like uint. Changed to unsigned int.

* Small change of a float to camera.zs. Ignore for testing. Should make no difference.

* Update actor.h to remain mergeable

RF2_NOMIPMAP was introduced, so I had to displace RF_ISOMETRICSPRITES to next bit.
2024-08-11 10:04:40 -04:00
Rachael Alexanderson
d8ef27e0ed
Squashed commit of the following:
commit ad25b50089b6e01b8e4291e34cfe3a008af9128d
Author: Rachael Alexanderson <madame-rachelle@users.noreply.github.com>
Date:   Fri Feb 9 12:12:46 2024 -0500

    Revert "Adding isometric camera mode with orthographic projection to current state of master branch of GZDoom."

    This reverts commit d2c2c93cf1.

commit 8537f0d8db804f0076b90daa66b750e44dccf44c
Author: Rachael Alexanderson <madame-rachelle@users.noreply.github.com>
Date:   Fri Feb 9 12:12:41 2024 -0500

    Revert "Changed all of the isometric functionality to mapinfo and playerinfo variables. Retained function of most of the CVars."

    This reverts commit dc897eacc0.

commit d45f6ebf11f31d246f2de4f3bbd11f7970783125
Author: Rachael Alexanderson <madame-rachelle@users.noreply.github.com>
Date:   Fri Feb 9 12:10:21 2024 -0500

    Revert "Restored r_orthographic behavior."

    This reverts commit 26908f5bc5.

commit be0836feef9b95f12828eeed4319c726ef13780d
Author: Rachael Alexanderson <madame-rachelle@users.noreply.github.com>
Date:   Fri Feb 9 12:09:15 2024 -0500

    Revert "Adding isometric camera mode with orthographic projection to current state of master branch of GZDoom."

    This reverts commit 08b03e6b19.

commit 688288a9199b912203022cb4db37503f6270e0c3
Author: Rachael Alexanderson <madame-rachelle@users.noreply.github.com>
Date:   Fri Feb 9 12:09:06 2024 -0500

    Revert "Changed all of the isometric functionality to mapinfo and playerinfo variables. Retained function of most of the CVars."

    This reverts commit d3405837ce.

commit 72b7df9fa1841d665c2846dd31a89c6f48123e55
Author: Rachael Alexanderson <madame-rachelle@users.noreply.github.com>
Date:   Fri Feb 9 12:08:59 2024 -0500

    Revert "Restored r_orthographic behavior."

    This reverts commit e171f4eb6a.

commit aa954132bf29f2f8a51bf09dae127e5ffe2c5670
Author: Rachael Alexanderson <madame-rachelle@users.noreply.github.com>
Date:   Fri Feb 9 12:08:48 2024 -0500

    Revert "Merged with latest master and made small change (zcenter -> center.Z) to hw_sprites.cpp. Now compiles and works."

    This reverts commit c8a7507e8e.

commit 3ce90e87a3a9956b615995b57b90619e89bbcff4
Author: Rachael Alexanderson <madame-rachelle@users.noreply.github.com>
Date:   Fri Feb 9 12:00:46 2024 -0500

    Revert "Cleaning up implementation of isometric camera with optional orthographic projection."

    This reverts commit 25f1407228.

commit 3aafd363e40c8d1d2ebbe3c61aeb2b80a74e565a
Author: Rachael Alexanderson <madame-rachelle@users.noreply.github.com>
Date:   Fri Feb 9 11:59:25 2024 -0500

    Revert "Small change to SpectatorCamera actor."

    This reverts commit 2b555d7556.

commit a41911f8907731c098de71ca3e14261ac432ec8c
Author: Rachael Alexanderson <madame-rachelle@users.noreply.github.com>
Date:   Fri Feb 9 11:59:16 2024 -0500

    Revert "SpectatorCamera can now follow the 'tracer' actor. Also added a 'lagdistance' property for lazy follow."

    This reverts commit 7fbb4cd06c.

commit 19398edd065b7b483b8c7be42cb16026695e241a
Author: Rachael Alexanderson <madame-rachelle@users.noreply.github.com>
Date:   Fri Feb 9 11:59:05 2024 -0500

    Revert "Minor addition toe SpectatorCamera. Added three chase modes to lazy follow. 0: Catch up until tracer is centered again. 1: Same but don't move if tracer isn't moving (camera moving when character is not is jarring). 2: Stop chasing if tracer is closer than lagdistance. Game modes benefit from a 'center camera' button but that doesn't have to be hard-baked into the engine."

    This reverts commit c3ca564cfc.
2024-02-09 12:15:17 -05:00
Major Cooke
3f72f8acd5 Fixed psprites & viewpos being completely broken for non-isometric mode.
This line of code was altering a global cvar.
2024-02-03 11:22:16 -05:00
Dileep V. Reddy
25f1407228 Cleaning up implementation of isometric camera with optional orthographic projection.
All CVars, mapinfo variables, and playerinfo/playerpawn variables are gone.
A Camera actor named 'SpectatorCamera' is defined in warsrc/static/zscript/actors/shared/camera.zs

The following new flag bits were defined in the 'DViewPosition' struct for use with actor->ViewPos in src/playsim/actor.h:
	VPSF_ALLOWOUTOFBOUNDS =		1 << 3,			// Allow viewpoint to go out of bounds (hardware renderer only).
	VPSF_ORTHOGRAPHIC =		1 << 4,			// Use orthographic projection.
	VPSF_ISOMETRICSPRITES =		1 << 5,			// Displace sprites towards camera and don't billboard (drawn from isometric perspective).

Basically, spawn a SpectatorCamera actor with the appropriate flags and set it to player.camera.
See example template: https://www.mediafire.com/file/fv8rytayjt9l6g1/isometric_actor_wads.zip/file

Has been tested with multiplayer death and disconnection (and respawns). Not tested with portals.
Still only works with hardware renderer (mostly). But should be compatible with older mods and libraries.
2024-02-01 08:43:34 -05:00
Dileep V. Reddy
e171f4eb6a Restored r_orthographic behavior. 2024-01-21 12:13:42 -05:00
Dileep V. Reddy
d3405837ce Changed all of the isometric functionality to mapinfo and playerinfo variables. Retained function of most of the CVars. 2024-01-21 12:13:42 -05:00
Dileep V. Reddy
08b03e6b19 Adding isometric camera mode with orthographic projection to current state of master branch of GZDoom. 2024-01-21 12:13:42 -05:00
Rachael Alexanderson
af08413e10
- reverting pull request #2361 - apparently pull request #2364 changed some behaviour and these two do not play nice together. One or the other unfortunately has to be rolled back to allow GZDoom to build properly again.
Revert "Restored r_orthographic behavior."

This reverts commit 26908f5bc5.

Revert "Changed all of the isometric functionality to mapinfo and playerinfo variables. Retained function of most of the CVars."

This reverts commit dc897eacc0.

Revert "Adding isometric camera mode with orthographic projection to current state of master branch of GZDoom."

This reverts commit d2c2c93cf1.
2024-01-21 08:18:16 -05:00
Dileep V. Reddy
26908f5bc5 Restored r_orthographic behavior. 2024-01-21 03:34:00 -05:00
Dileep V. Reddy
dc897eacc0 Changed all of the isometric functionality to mapinfo and playerinfo variables. Retained function of most of the CVars. 2024-01-21 03:34:00 -05:00
Dileep V. Reddy
d2c2c93cf1 Adding isometric camera mode with orthographic projection to current state of master branch of GZDoom. 2024-01-21 03:34:00 -05:00
Christoph Oelckers
bafd6be342 - removed backend dependencies on game data. 2023-01-15 08:23:26 +01:00
Magnus Norddahl
181eda0a83 Fix canvas textures getting clipped by wrong scissor box 2022-10-28 18:01:59 -04:00
Shiny Metagross
08f520f1c6 IQM Support Implemented
More info to come
2022-10-19 22:48:57 +02:00
Christoph Oelckers
4032576519 - blocked off direct access to TAngle’s internal storage. 2022-08-26 18:09:29 +02:00
Christoph Oelckers
f0fbdba593 - disable implicit conversions from float to TAngle 2022-08-26 18:01:26 +02:00
Christoph Oelckers
ee2c775bd8 - fix last commit 2022-07-29 08:36:26 +02:00
Christoph Oelckers
5bae588f80 - get rid of M_Malloc call in WriteSavePic
Use TArray instead
2022-07-29 08:25:55 +02:00
Magnus Norddahl
b8569fa29f Fix GC shutdown crash due to canvas objects not getting GC'ed at the end
Fix typo in Draw2D and add support for specifying the viewport size directly
2022-07-25 18:50:16 +02:00
Magnus Norddahl
bb503950df Add canvastexture definition to animdefs.
Split canvas texture rendering from camera texture rendering.
2022-07-25 18:50:16 +02:00
Magnus Norddahl
97073410c4 Upload acceleration structures for the level mesh 2022-06-22 07:55:19 +02:00
Christoph Oelckers
31de21e6aa - GLES fixed: The weapon sprite must be rendered with the fullscreen colormap on. 2021-09-18 10:27:41 +02:00
Christoph Oelckers
b0382599f6 - removed the SSBO block for desktop OS’s when gl_pipeline_depth is enabled 2021-09-14 00:13:08 +02:00
Rachael Alexanderson
92a3731f20 Merge remote-tracking branch 'origin/master' into gles2_merge 2021-08-13 08:11:58 -04:00
Christoph Oelckers
1097bd6c73 - fixed: instead of checking gl_lights, better check Level->HasDynamicLights.
Especially in the thinker code this is needed for software rendering.
Strictly speaking, the software renderer should do the same, but it checks r_dynlight in so many places deep in the logic where the level is not available.
2021-08-11 14:09:00 +02:00
Christoph Oelckers
c24f644a61 - do not perform shadowmap updates when dynamic lights are disabled. 2021-08-11 08:08:29 +02:00
Christoph Oelckers
441cd0796f - merged gzdoom-gles2 and fixed some issues with pipeline size validation. 2021-08-03 20:12:19 +02:00
Christoph Oelckers
0cffeef2c6 - added map option to disable shadowmaps.
Prompted by 'Hurt' which has > 4000 lights and runs into both performance issues and unpredictable light selection for the limited amount of shadowmap slots.
2021-07-13 11:54:25 +02:00
Rachael Alexanderson
cfc080e37f - never run the shader timer on the 0th frame. fixes this bug: https://forum.zdoom.org/viewtopic.php?f=2&t=62693 2021-05-18 14:37:05 -04:00
James Le Cuirot
8ef02544a7 Fix camera texture aspect ratio in hardware renderer
It wasn't respecting the map's pixel ratio setting. This wouldn't have
been very noticeable with the default pixel ratio of 1.2 but it was
very obvious with 1.8.
2021-03-19 00:04:46 +01:00
Christoph Oelckers
80b5a66635 - fixed bad range check in shadowmap code.
Since the last refactoring this only counts lights, not occupied entries in the array, but the check wasn't adjusted for that.
2020-06-12 15:07:13 +02:00
Christoph Oelckers
b06af634e2 - added a flash component to the colormap shader.
Its main purpose is for RR's lightning flash in Raze but this looks very useful for manipulating fullscreen colormaps. Currently not exposed, though.
2020-06-07 09:16:56 +02:00
drfrag
332dfa4d6f - Remove wrong GL includes. 2020-05-27 21:35:09 +02:00
Christoph Oelckers
0cf967dc06 - fixed wrong order of actions on shadow map updater. 2020-05-04 22:15:18 +02:00
Christoph Oelckers
6cf91d3941 - moved the remaining core parts of the GL renderer to 'common'. 2020-04-29 17:19:17 +02:00
Christoph Oelckers
2196b4fb04 - moved the frame rate drawer out of DFrameBuffer.
Too much of this is not shareable and all it consists of are drawing operations on the 2D drawer.
2020-04-27 23:53:26 +02:00
Christoph Oelckers
67a50d084a - started cleanup of model code.
* refactored FBoundingBox so that the game dependent members are global functions now.
* changed some methods of the model renderer to take a render style parameter instead of a full actor.
2020-04-27 00:03:23 +02:00
Christoph Oelckers
c30165db0d - removed the remaining dependencies of the shadowmap code on game data.
Everything is handled with callbacks now.
2020-04-26 19:58:17 +02:00
Christoph Oelckers
ba0b42465d - changed shadowmap setup so that the AABB tree is owned and controlled by the map, not the renderer.
Needed to properly separate game logic from backend implementation, the shadowmap had both in the same object thanks to the old setup.
2020-04-26 18:54:43 +02:00
Christoph Oelckers
69d724ae73 - moved lightbuffers and flatvertices to 'common'. 2020-04-26 12:41:13 +02:00
Christoph Oelckers
cf41a0b1fb - moved hw_cvars to 'common'. 2020-04-26 11:38:38 +02:00
Christoph Oelckers
686aa9779d - moved VR code and IntRect to 'common' 2020-04-26 10:26:29 +02:00
Christoph Oelckers
0c63f5c832 - moved FRenderState to 'common' and removed some game-dependent parts from it. 2020-04-25 23:29:38 +02:00
Christoph Oelckers
59360f2d77 - started cleanup of dependencies of the framebuffer class.
* made the portal state global, outside the framebuffer, because it is pure logic state without dependencies on the backend.
* took the setup functions out of FDynLightData - there is no need to have them as members and they age game dependent.
2020-04-25 21:08:07 +02:00
Christoph Oelckers
9872065fc6 - moved file to its proper place. 2020-04-25 18:38:17 +02:00
Renamed from src/rendering/gl/renderer/gl_scene.cpp (Browse further)