Gross-hacky replication of Unreal Engine 1 procedural fire textures
Go to file
Marisa the Magician 605798b51b Increase performance of Tick by partially unrolling Calc* functions. 2023-10-09 16:21:59 +02:00
palettes Funny proof of concept here. 2023-10-08 22:27:33 +02:00
zscript Increase performance of Tick by partially unrolling Calc* functions. 2023-10-09 16:21:59 +02:00
Pad_FX.ftx Funny proof of concept here. 2023-10-08 22:27:33 +02:00
README.md Add README. 2023-10-08 22:40:08 +02:00
RGB8LUT.png Speed up rendering (not by much) using Shape2D and a RGB8 LUT. 2023-10-09 12:57:25 +02:00
animdefs.txt Funny proof of concept here. 2023-10-08 22:27:33 +02:00
screenshot.png Add README. 2023-10-08 22:40:08 +02:00
zmapinfo.txt Funny proof of concept here. 2023-10-08 22:27:33 +02:00
zscript.txt Funny proof of concept here. 2023-10-08 22:27:33 +02:00

README.md

Proof-of-concept porting/recreating FireTexture in ZScript

Exactly what it says on the tin. Much reverse engineering and guesswork was involved to try to get this stuff to look and behave as close as possible to the real deal.

It is in no way practical to use due to the severe performance hit of more than one texture (yeah, I've tested this in Doomreal), but hey, it works, so it's neat that I managed to get that far.

Main performance hogs here are the fire spread code (CalcWrapFire() and CalcSlowFire()), as well as the render function which blits the raw texture one pixel at a time to the canvas (there is currently no faster way to do this). Fortunately, Render() only has to be called immediately after Tick(), rather than every frame.

Anyway, feel free to ogle the horrendous code of this thing, just for curiosity's sake.

— Marisa