Commit Graph

294 Commits

Author SHA1 Message Date
Emile Belanger a6f62773cb Give -1 to model light index otherwise mLightIndex in renderstate ends up getting set to 0 which is a valid light index 2021-05-13 10:04:40 +02:00
Christoph Oelckers cb2bc7967a - fixed the remaining warnings. 2021-05-12 21:50:01 +02:00
Christoph Oelckers 8003ab6fa3 Merge branch 'scriptable_cutscenes' into newrenderer 2021-05-02 22:37:46 +02:00
Emile Belanger b83928f437 Clear Viewpointbuffer position so it does not go to infinity 2021-05-02 22:22:43 +02:00
Christoph Oelckers b8f9bdb7c1 - made savepic work with new renderer. 2021-04-21 22:32:27 +02:00
Christoph Oelckers be20b6a839 - fixed: wall sprites do not need NPOT emulation. 2021-04-20 16:58:18 +02:00
Christoph Oelckers 42d02834b1 Merge branch 'master' into newrenderer2
# Conflicts:
#	source/build/include/build.h
#	source/build/src/polymost.cpp
#	source/build/src/voxmodel.cpp
#	source/core/gamecontrol.cpp
#	source/core/gamestruct.h
#	source/games/blood/src/animatesprite.cpp
#	source/games/blood/src/misc.h
#	source/games/blood/src/view.cpp
#	source/games/duke/src/render.cpp
#	source/games/sw/src/draw.cpp
#	source/games/sw/src/game.h
#	source/games/sw/src/jsector.cpp
#	source/glbackend/glbackend.cpp
2021-04-11 14:38:56 +02:00
Christoph Oelckers 9fd3ab6b5e - fixed texture precaching.
After the migration to GZDoom's full backend this never created any textureds when precaching things.
2021-04-11 09:59:55 +02:00
Christoph Oelckers b3bcedda6c - moved backend independent HUD code out of glbackend.cpp. 2021-04-11 08:40:18 +02:00
Christoph Oelckers e098e0ca2e - added VR mode init code as this is actually functional with the new renderer.
Also moved a few things out of gl_texture.cpp as this file is scheduled to go away with Polymost.
2021-04-05 20:12:11 +02:00
Christoph Oelckers 7c4e9ea87e - moved palette manager for indexed textures out of glbackend 2021-04-05 20:00:21 +02:00
Christoph Oelckers 638f19172a - voxel rendering.
The stock voxels of Blood and SW seem to work so far, but not all edge cases have been tested.
2021-04-02 18:20:07 +02:00
Christoph Oelckers e1df17964e - fixed handling of SW's shadows.
An out of range shade will only work without fog.
2021-04-01 19:10:43 +02:00
Mitchell Richters 88695ef554 Merge branch 'master' into newrenderer2 2021-04-01 16:49:07 +11:00
Mitchell Richters 029f8807df - Make `360. / 2048.` a constant expression and replace all uses throughout code. 2021-04-01 10:42:22 +11:00
Christoph Oelckers 168b0385cf - moved shadeToLight out of build.h. 2021-03-25 09:13:59 +01:00
Christoph Oelckers 547ed4e415 - route everything through the full backend, now completely bypassing the intermediate GLInstance layer. 2021-03-18 17:18:03 +01:00
Christoph Oelckers 4cf2493cfd set up the entry point for the renderer. 2021-03-18 14:49:36 +01:00
Christoph Oelckers 6068427270 - port the bunch drawer to the backend's core. 2021-03-18 12:32:31 +01:00
Christoph Oelckers 2d958745b4 - fixed: Polymost must set the viewpoint if renderers are switched.
- fixed coordinate order in renderSetViewpoint
- fixed backwall checks accidentally testing wall 0 instead of the current wall.
2021-03-18 00:28:38 +01:00
Christoph Oelckers b492cbcebb - ported my old Build-style renderer for Doom from 2008 and the wall renderer from GZDoom to work with Build data.
It renders walls, but y-panning is still broken.
2021-03-17 16:54:36 +01:00
Christoph Oelckers 9ebd8fd4a5 - put all of Polymost in a namespace.
So that its static variables are properly separated from the rest.
2021-03-17 15:55:25 +01:00
Christoph Oelckers bbd5c0ac8b - transitioned voxel rendering to use the backend's implementation. 2021-03-02 17:10:34 +01:00
Christoph Oelckers d28d5a5e1f - use real fog, even in palette emulation mode.
Using the palette to apply fog is just far too broken and cannot be kept in check with all the hacks the Build engine allows.
This only works if all elements on screen use the identity translation lookup which is basically never the case.
Real fog, on the other hand, can easily be applied to everything.
2021-02-27 13:30:52 +01:00
Christoph Oelckers 3163e4a799 - check for invalid tiles being passed to the 2D renderer.
Since mods can actually replace valid tiles with invalid ones, the low level render code needs to check this case.
2021-01-27 23:52:40 +01:00
Christoph Oelckers 25ef58f897 - re-enabled all model specific code in Duke's animatesprites function and removed some remaining software renderer-only code in the engine. 2020-12-01 23:57:39 +01:00
Christoph Oelckers ed599d0f05 - moved the hires texture replacement logic into a backend callback.
This way it can be handled transparently to the calling code.
Fonts do not work yet, though.
2020-11-10 16:22:02 +01:00
Christoph Oelckers 8c241afc40 - undid texture substitution in 2D code. 2020-11-10 10:08:17 +01:00
Christoph Oelckers 40358febc1 - changed render interface to resolve textures to materials in the backend.
This is needed to have a unified spot where to resolve textures for both 2D and 3D.
2020-11-10 09:08:48 +01:00
Christoph Oelckers e95fea1056 - fixed: Toggling palette emulation should reset the texture filter in the samplers. 2020-10-10 18:57:16 +02:00
Christoph Oelckers 58dcf0586b - scale weapons down to the original tile's size.
Needed because hires replacements contain no scaling info.
2020-10-04 15:33:12 +02:00
Christoph Oelckers 3210dd5782 - fixed the noisiest value truncation warnings after shortly re-enabling them in the compiler, plus a few places where the warning pointed to incorrect code. 2020-09-26 11:59:24 +02:00
Christoph Oelckers f106f35598 - fixed interpolation of palette emulation. 2020-09-23 18:18:23 +02:00
Christoph Oelckers 28c5c72605 - fixed: black fog does not mean FogColor == 0 because its alpha component is non-0 2020-09-22 22:38:08 +02:00
Christoph Oelckers 78be8f866b - always use the containing sector's fog when rendering sprites.
This is for consistency, otherwise sprites with a palette translation would stand out. Also use shade dependent fog density instead of a single global value.
Currently this only has an effect in true color rendering mode.
2020-09-20 20:39:11 +02:00
Christoph Oelckers bac357a6be - disable the weapon in SW's savepics.
The way the weapon drawer is implemented does not work well with save pictures.
2020-09-19 21:31:35 +02:00
Christoph Oelckers 2bf5933923 - fixed weapon sprite translation index when in paletted mode. 2020-09-19 00:06:07 +02:00
Christoph Oelckers 29a10cabcb - fixed most issues with palette emulation.
Brightness is now correct - I have no idea why this factor of 1/0.85 is needed - something must reduce the brightness of the entire scene but I have no idea what.
2020-09-18 22:29:13 +02:00
Christoph Oelckers cf6b497d02 - fixed animation of weapon sprites
This also disables palette emulation for weapons because it's too buggy right now. Will be re-enabled once fixed.
2020-09-14 22:16:33 +02:00
Christoph Oelckers 4485587088 - removed the palette remapping in the lookup texture generators because it is no longer needed.
Fixes #396
2020-09-14 21:54:29 +02:00
Christoph Oelckers c61a2c3486 - enable palette emulation for HUD weapon drawing.
Not correct yet but the basics are in.
2020-09-13 23:14:44 +02:00
Christoph Oelckers fe329b0870 - fixed voxel rendering in palette emulation mode. 2020-09-13 21:08:10 +02:00
Christoph Oelckers 9e81fa89a8 - fixed some of the issues with palette emulation
* the palette shader was not bound.
* the palette textures were not bound.
* palette mode still used regular lighting on top of the palette emulation

This works a lot better than before but is still not complete.
2020-09-12 21:23:14 +02:00
Christoph Oelckers 222f82304d - fixed savegame image generation.
There were two errors:
1. The postprocessor was not run on the generated scene so that the target framebuffer never got set.
2. The generated PNG was not finalized and failed the integrity check of the savegame menu.

Fixes #48
2020-09-12 01:11:32 +02:00
Christoph Oelckers f4bd30b972 - Duke: Fixed noclip cheat message. 2020-09-10 21:50:22 +02:00
Christoph Oelckers 59eb923c11 - fixed replacement of hires textures.
Fixes #107
2020-09-10 20:52:40 +02:00
Christoph Oelckers dc0968bf61 - fixed fog on RRRA E2L1
Fixes #183
2020-09-05 23:20:48 +02:00
Christoph Oelckers 763be58134 - tinkering with the savepic code.
This was definitely missing but it's not the cause of the empty savepic.
2020-09-01 19:21:00 +02:00
Christoph Oelckers 765f211e05 - things are mostly working again.
Rendering produces an image again, input gets properly processed, but unsynchronised mouse input isn't properly applied yet.
2020-08-30 19:59:46 +02:00
Christoph Oelckers 0c455acaa2 - more work to switch over to the new loop.
Mainly separation of ticker and render calls
2020-08-30 10:42:44 +02:00