Commit graph

1,421 commits

Author SHA1 Message Date
Magnus Norddahl
c1d0963da4 Rewrite the GLSL ray trace code so it does not use global variables!!
Fix portals not working
2024-02-09 12:08:16 +01:00
Magnus Norddahl
2411b103b5 Keep bindings in the mesh 2024-02-08 21:27:16 +01: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
Magnus Norddahl
7bc2ed5436 Remove the submesh class as that caused more problems than it solved 2024-01-29 21:56:42 +01:00
Major Cooke
dbd6059894 Fixed player sprites not showing up in chasecam mode. 2024-01-28 09:48:11 -05:00
Dileep V. Reddy
c8a7507e8e Merged with latest master and made small change (zcenter -> center.Z) to hw_sprites.cpp. Now compiles and works. 2024-01-21 12:13:42 -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
Major Cooke
278ebf3202 Aded FLIPSPRITEOFFSET<X/Y> for actors and bFlipOffset<X/Y> for visual thinkers.
- Inverts the direction that (Sprite)Offset pushes the sprite without affecting *any* other offsets, allowing them to combine seemlessly.
2024-01-21 03:33:48 -05:00
Major Cooke
4e48250cf2 CalculateVertices Refactor
- Added roll support for Y billboarding
- Fixed a bunch of broken checks that prevented Y billboarding from working properly
- Y billboarding takes precedence over sprite facing
- Optimized ROLLCENTER: now combines the sprite's embedded offsets with SpriteOffsets instead of doing wasteful transforms before/after rotations
- Greatly cleaned up a bunch of cruft
2024-01-21 03:33:48 -05:00
Magnus Norddahl
3cc38c1d14 Merge remote-tracking branch 'gzdoom/master' 2024-01-18 10:43:42 +01:00
Rachael Alexanderson
1c7f195353
- reverse y offset for SpriteOffset to be consistent with software renderer and past versions 2024-01-18 03:00:44 -05:00
Magnus Norddahl
1d34b16676 Fix typo 2024-01-17 21:17:47 +01:00
Magnus Norddahl
f8aee53953 Change lightmap UV calculation to use the final decal position 2024-01-17 21:05:44 +01:00
Magnus Norddahl
4341f1da27 Fix missing lightmap on decals 2024-01-17 20:24:24 +01:00
Ricardo Luís Vaz Silva
98e6330eaa allow modeldef flags to be overriden 2024-01-16 10:27:08 -05:00
Magnus Norddahl
ee7771f71f ZDRay lump loading adjustments 2024-01-16 12:42:58 +01:00
RaveYard
7f7363e30b Convert fogball calculations from sRGB to linear 2024-01-11 01:33:36 +08:00
Magnus Norddahl
805bce1166 Merge remote-tracking branch 'gzdoom/master' 2024-01-10 04:03:35 +01:00
Ricardo Luís Vaz Silva
b7e5d3d052 rename SPF_STANDALONE_ANIMATIONS to SPF_LOCAL_ANIM 2024-01-09 06:38:08 -05:00
Ricardo Luís Vaz Silva
3bd80ab8f6 Do the same for Visual Thinkers 2024-01-09 06:38:08 -05:00
Ricardo Luís Vaz Silva
7eab519795 Implement animated particles that aren't tied to the global animation timer 2024-01-09 06:38:08 -05:00
Christoph Oelckers
ea65768e0b fixed compile errors. 2024-01-07 12:28:21 +01:00
Christoph Oelckers
f13ae3b706 addressed a few things pointed out by static analysis
* marking move assignments noexcept
* using [[fallthrough]] consistently.
* getting rid of alloca.
2024-01-07 08:46:47 +01:00
Ricardo Luís Vaz Silva
35e56d3f42 Minor optimizations to VisualThinker
* remove duplicated fields
* make native functions use direct calls
* remove unnecessary pointer from particle_t
* create HWSprite directly in Construct
2024-01-06 20:06:57 -05:00
Major Cooke
f647545c1d Disabled player sprites when crossing through portals. 2024-01-04 07:23:24 -05:00
Magnus Norddahl
73ada7f84b Merge remote-tracking branch 'gzdoom/staging' 2024-01-02 17:10:47 +01:00
RaveYard
9534e7b76e Increase and unify max distance for sunlight rays 2024-01-01 14:36:08 +01:00
Magnus Norddahl
9c55120251 Fix include error 2023-12-31 07:30:12 +01:00
Magnus Norddahl
a793ddd7bd More compile fixes 2023-12-31 07:10:36 +01:00
Magnus Norddahl
c1f38b18c4 Put all the pipeline barriers in the same function and use a new instance buffer each time the TLAS is updated 2023-12-26 04:31:02 +01:00
Magnus Norddahl
bdea7b6c13 Always update sprite light in dynamic lm sectors 2023-12-26 04:31:01 +01:00
Magnus Norddahl
46946e9fd4 Move lightmap UV calculations to HWWall::CreateVertices 2023-12-26 04:31:01 +01:00
Magnus Norddahl
4b5882e030 Remove unused code and make functions private 2023-12-26 04:31:01 +01:00
Magnus Norddahl
712c664a2c Use the correct light mode 2023-12-26 04:31:01 +01:00
Magnus Norddahl
0cd39e68ca Remove unused code 2023-12-26 04:31:01 +01:00
Magnus Norddahl
4104f047b6 Apply texture matrix 2023-12-26 04:31:01 +01:00
Magnus Norddahl
3d71e2532f Disable translucent HWWall surfaces 2023-12-26 04:31:01 +01:00
Magnus Norddahl
bbb3a677c3 Fix sky surface getting getting bound as an upper wall 2023-12-26 04:31:01 +01:00
Magnus Norddahl
496b053567 HWWall lightmap UV calculation hell 2023-12-26 04:31:00 +01:00
Magnus Norddahl
29217df246 Create index list directly from the levelmesh builder 2023-12-26 04:31:00 +01:00
Magnus Norddahl
48b6a7ec46 Split level mesh surface from lightmap tiles as we have multiple surfaces per tile 2023-12-26 04:31:00 +01:00
Magnus Norddahl
1f6356f414 Plane shadow vertices must be created after the level mesh, otherwise they do not receive the lightmap UV coordinates 2023-12-26 04:31:00 +01:00
Magnus Norddahl
4ae767cc5a Fix polyobj planes ending up in the level mesh 2023-12-26 04:31:00 +01:00