Comments (11)
I'm on it
from bgfx.
What's the issue with D3D? Where is your branch? I can take a look.
from bgfx.
What's the issue with D3D? Where is your branch? I can take a look.
@bkaradzic Sorry I was too busy in past two weeks, just pushed my changes to a fork, here you can see it:
https://github.com/Seyedof/bgfx-gaussian
It works in both OpenGL and Vulkan and I assume it works for all the OGL brid (like WebGL,...) as well, but not on Direct3D family. This code needs a final minor cleanup pass to create a PR/MR on bgfx upstream, please take a look into it and let me know if you figure out how to fix d3d problem and I will fix it quickly and raise a PR.
To my understanding the problem might come from difference in D3D and GL matrix layout or the dynamic vertex buffer is not uploaded correctly or per-instance vertex layout is not right (based on some experiments I ran).
from bgfx.
D3D doesn't work because semantics used for instanced data here:
https://github.com/Seyedof/bgfx-gaussian/blob/dc033bc0fe2a6358b4a0ccc174945964d78af9b2/examples/50-gaussian-splatting/varying.def.sc#L5-L8
i_data0
should be TEXCOORD7
, i_data1
should be TEXCOORD6
, etc.
https://bkaradzic.github.io/bgfx/tools.html#vertex-shader-attributes
from bgfx.
Few other things I noticed:
- use
bx::tan
- fix resource leaks at exit
from bgfx.
@Seyedof check these articles too:
https://aras-p.info/blog/2023/09/13/Making-Gaussian-Splats-smaller/
https://aras-p.info/blog/2023/09/27/Making-Gaussian-Splats-more-smaller/
Also need to find one or few smaller in data-size data sets for example. We don't want to bloat repo with 40+MiB data sets.
For example these data sets are around 13MiB each:
https://gsplat.tech/materials/
https://gsplat.tech/lego/
from bgfx.
@bkaradzic
Thanks for the links, yeah I've seen Aras's work on shrinking splat data, he uses textures.
I tend to keep this as simple as I can, since it's just an example.
Regarding data file sizes, the train scene is almost 32mb, the small files you sent are around 13mb.
The output quality is very sensitive to splat density, so for good looking scenes like this Train and the truck we should accept the data size.
There's also a workaround, I can fetch the splat file from http instead of local file system, no need to put it inside repo.
from bgfx.
I tend to keep this as simple as I can, since it's just an example.
Yeah, simple is better for examples.
There's also a workaround, I can fetch the splat file from http instead of local file system, no need to put it inside repo.
I would avoid this because it's not guaranteed to be available in the future.
from bgfx.
@bkaradzic
It's almost done, the only problem is I couldn't make it work in Direct3D, only works in OGL, it that ok to create a pull request?
from bgfx.
What about Vulkan? I thought OpenGL support was EoL
from bgfx.
Thanks it worked after fixing this and with some more changes in shader, will clean up the code and raise a PR shortly.
from bgfx.
Related Issues (20)
- With GL renderer and wayland, switching to full screen with crtl-f results in nothing (nvidia) or not much (amd) being rendered HOT 2
- Blitting between two textures with BackbufferRatio sizes crashes when window is resized
- Vulkan fail to create swapchain on Wayland (Call to a X11 function ?) HOT 9
- Bug: DX3D12 crash in Debug mode HOT 7
- Small fix on soname defining on ldflags for Android examples. HOT 2
- Crash on linux (default backend - vulkan) with custom window handle and native display is NULL HOT 6
- Shaderc.cpp incorrectly adds PSSL preamble to compute shader HOT 1
- macOS version compatibility HOT 2
- Bad Vulkan performance due to weak index/vertex buffer management HOT 1
- Crash on resize: Nvidia RTX 4090 + Vulkan + Linux HOT 3
- Metal: example-01-helloworld corrupted render when MSAA is enabled HOT 2
- Shifted window buffer location when resizing a window HOT 1
- Vulkan Backend - incorrect mipmap generation for cubemap frame buffers. HOT 4
- Unable to build bgfx for iOS Simulator x86_64 arch HOT 4
- Vulkan on Android: the frame isn't updating (ONLY THE FIRST FRAME IS RENDERED) HOT 4
- Screenshot taken always from the main window backbuffer on MacOS/Metal
- Index buffer offset not being set with dynamic index buffer and indirect call HOT 25
- gl_NumWorkGroups doesn't compile when the target is DirectX HOT 1
- Feature request: Support FSR 3 instead of FSR 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from bgfx.