Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Open
11 of 37 tasks
0lvin opened this issue Mar 4, 2024 · 9 comments
Open
11 of 37 tasks

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

0lvin opened this issue Mar 4, 2024 · 9 comments
Assignees
Labels
enhancement New feature or request

Comments

@0lvin
Copy link
Contributor

0lvin commented Mar 4, 2024

Based on: yquake2/ref_vk#40

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

  • tessellation for models
  • Ray tracing
  • Md3 model support
  • Md5 model support / Re-Release support
  • IQM
  • dynamic lights without light maps, for case if we have light with custom properties,
  • Compressed image formats
  • BSPX/DeLMCoupled ReRelease support for lightmap
  • BSP39 support
  • QBSP
  • Port dynamic lights from gl3 render,
  • support logic to select meshes from model to show,
  • generate normals for models with unknown normal pack method, e.g. Dakatana/Anachronox,
  • convert surface flags by source game type,
  • 3 bytes compressed normals,
  • compress triangles based surfaces to short glcmd as in qwalk,
  • Anachronox data package format support
  • Dakatana data package format support
  • SiN data package format support
  • third person selection from menu,
  • DirectX render,
  • OpenGL 2.0 render
  • direct non compliled map load
  • Quake 3 map load
  • Quake 1 map load
  • SiN models load

ReRelease requirements:

  • BSPX support for all sections
  • Support Rerelease demo format read, protocol 2022/2023,
  • Rerelease surface flags for q64 texture flow effects,
  • Rerelease light entities,
  • Utf8 font support
  • translation support
  • All entities and fields support
  • binary search for entities fields and methods,
  • select embedded mods start for Xatrix, Rogue and so on,
  • Rerelease fog effect.
  • surface materials support
  • haptic feedback based on PS 4/Nintendo switch files
@0lvin 0lvin added the enhancement New feature or request label Mar 4, 2024
@0lvin 0lvin self-assigned this Mar 4, 2024
@0lvin 0lvin changed the title Custom render features ideas Custom render features ideas, add more if you have Mar 4, 2024
@acyc070
Copy link

acyc070 commented Apr 3, 2024

Direct3D 9, 10, 11. 12(unnecessary)

@IceReaper
Copy link

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
Copy link
Contributor Author

0lvin commented Apr 3, 2024

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
Copy link
Contributor Author

0lvin commented Apr 6, 2024

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
Copy link

acyc070 commented Apr 13, 2024

Add thirdperson options like in KMQuake II

@0lvin
Copy link
Contributor Author

0lvin commented Apr 13, 2024

Add thirdperson options like in KMQuake II

Third person option is already implemented 6b4f197

@acyc070
Copy link

acyc070 commented Apr 13, 2024

I mean add OPTIONS in menu for thirdperson

@acyc070
Copy link

acyc070 commented Apr 13, 2024

here

@acyc070
Copy link

acyc070 commented Apr 15, 2024

I hope this thing will come soon

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

3 participants