-
-
Notifications
You must be signed in to change notification settings - Fork 1
[Feature] Adding KTX2 #35
Copy link
Copy link
Open
Labels
area:renderingGraphics, rendering pipeline, visual output, frame-side rendering behavior.Graphics, rendering pipeline, visual output, frame-side rendering behavior.component:enginefreven-engine: core engine/runtime/simulation/client-server internals.freven-engine: core engine/runtime/simulation/client-server internals.priority:p2Normal priority. Planned work, worthwhile but not urgent.Normal priority. Planned work, worthwhile but not urgent.status:confirmedConfirmed bug/request. Reproduced, accepted, or clearly valid.Confirmed bug/request. Reproduced, accepted, or clearly valid.
Metadata
Metadata
Assignees
Labels
area:renderingGraphics, rendering pipeline, visual output, frame-side rendering behavior.Graphics, rendering pipeline, visual output, frame-side rendering behavior.component:enginefreven-engine: core engine/runtime/simulation/client-server internals.freven-engine: core engine/runtime/simulation/client-server internals.priority:p2Normal priority. Planned work, worthwhile but not urgent.Normal priority. Planned work, worthwhile but not urgent.status:confirmedConfirmed bug/request. Reproduced, accepted, or clearly valid.Confirmed bug/request. Reproduced, accepted, or clearly valid.
Problem / Motivation
I think this issue will be very useful when working with: textures, shaders, materials, and the model system.
Right now, regular raster images are used — which in the future will lead to high memory consumption.
The point is that Freven-vanilla and other games with large spaces — even with good optimization — will require a lot of memory for textures.
A simple example. I mentioned it a long time ago.
KTX2 (+Basis Universal), in turn:
Proposed solution
I propose using the ktx2-rw library. I personally tried it, and an almost complete pipeline for CaveVox took me about 1500 lines. Considering Freven as a whole, I think the entire API will take around 3–4 thousand lines of code.
But this is a very powerful architecture. If we also design a proper API between the implementation of textures, materials, models, and shaders — it will turn out very well.
That is, this will completely solve the texture problem for Freven.
Alternatives considered
There are alternatives, but they will be much more complex, and I don’t see the point in that.