yquake2 / yquake2remaster

Yamagi Quake II with Q2 Remaster support
Other
43 stars 8 forks source link

Custom render features ideas, add more if you have #12

Open 0lvin opened 3 months ago

0lvin commented 3 months ago

Based on: https://github.com/yquake2/ref_vk/issues/40

All features should optional and disabled by default. All models should be implemented inside models.c code without dependencies to render library.

ReRelease requirements:

acyc070 commented 2 months ago

Direct3D 9, 10, 11. 12(unnecessary)

IceReaper commented 2 months ago

I would love to see built-in support for gltf, and especialy loading raw trenchbroom maps. That would make modding and a bunch of possibilities a lot more acessible to users. Basicaly have advanced shaders so the compilation is not required anymore. This include realtime shadow/light and a few other gimmicks.

That would fit nicely along png,wav,zip.

While raytracing "sounds nice" IMO it would be nice to keep a second graphics pipeline which is widely available. So basicaly ensure there is a renderer which works on a variety of target platforms. This will be obviously vulkan as opengl support on OSX ends with 4.3 (or was it 4.1?), so no fancy buffers here or bindless textures ... :(

Especialy thinking about having an engine capable of running on android / ios / console devices too. Targeting a specific high-end graphics api version is totaly unnecessary and custom apis can always be implemented if ever someone comes along and wants to use the engine with state of the art high definition assets and requires those graphics features.

0lvin commented 2 months ago

Direct3D 9, 10, 11. 12(unnecessary)

It looks like best way will be create directx render in separate repository and work on merging it to some main repository only after implement functionality level near to gl1/soft render. It could be started as implementation of render for non Rerelease version of repository as it has much more stable in render ABI perspective.

I would love to see built-in support for gltf, and especialy loading raw trenchbroom maps.

Gltf support looks as much bigger task than implement any Quake bsp format and would require implement custom logic in all renders :(

I have not made any investigation and map file format support should be much more simple task and we could compile map file to internal bsp 39 like format on fly.

While raytracing "sounds nice" IMO it would be nice to keep a second graphics pipeline which is widely available.

Noone has really started looking to it as I know, I expect it will be just some flag in Vulkan render

Especialy thinking about having an engine capable of running on android / ios / console devices too.

I suppose that only steam deck could be supported as others has a fully different build pipeline or proprietary libraries :-(

I same time I think everyone will appreciate for any improvements to code quality or porting to a new platform.

0lvin commented 2 months ago

I have added support of load bsp's from Heretic 2, Dakatana, Kingpin and Sin. Mostly all of it has with rendering transparent surfaces.

All uses same lump sizes as original Quake 2 except Dakatana and SiN. It's not issue for Dakatana as it has one lump where record is four bytes bigger, but SiN has two lumps with different record size by search sizes that have lump_size mod equal to zero, so I have found only theoretical size of record and fields placings, like texture name and size of text. But it looks like other fields has different placement and sizes so all surfaces looks as non solid :(

Current sin map code in sin branch if someone likes to check.

acyc070 commented 2 months ago

Add thirdperson options like in KMQuake II

0lvin commented 2 months ago

Add thirdperson options like in KMQuake II

Third person option is already implemented https://github.com/yquake2/yquake2remaster/commit/6b4f197ac00fc933e198cef56755d919b68fdb23

acyc070 commented 2 months ago

I mean add OPTIONS in menu for thirdperson

acyc070 commented 2 months ago

here

acyc070 commented 2 months ago

I hope this thing will come soon