New Post: Triangle Tessellation with Clamped Parallelograms. The key idea is to use float tess factors like Dx11 tessellation but replace the pattern to be straighter and more stable. Also includes an MIT licensed web viewer for reference.
https://t.co/7zPNcJDGQY
@castano It's one of the ideas I toyed around with. Ultimately, my finding was it created too many extra triangles. In scenes with manufactured objects, thin and oddly shaped triangles dominate. So the cost of creating an optimized topology is worth it in my exploration.
@diakou@SebAaltonen@aras_p That's great to know. I've been maintaining a native webgpu build with a typical main/render thread split but a special case for single-threaded on emscripten. Time to get chopping.
Also modern C++ has constructs such as templates and ranges, which are not simple 1:1 operations. The language has constructs that are inherently slow to compile. Many of them could be designed slightly differently and/or by making them language features instead of library features to make them significantly faster to compile. C++20 std library headers for example are significantly slower to compile vs C++17. Language isn't slower to compile, but the standard library is. It's such a massive template clusterfuck. So it's not just a compiler problem, it's also a standard library problem.
@XorDev assert()!
On a cpu assert:
1. Visual Studio breaks on the exact command.
2. You get a stack trace.
3. You can inspect local variables.
An assert with a PIX command that would jump to the draw call/wave/thread with a callstack and register values is the dream.
Has anyone had success building aom for emscripten with simd support (either SSE or NEON)? I've been trying to make it work without success, and the guides specify DAOM_TARGET_CPU=generic as the golden path. https://t.co/8N24ruE8st
meshoptimizer v0.25 is out! Featuring new simplification function that optimizes positions and attributes for appearance, experimental permissive mode to simplify faceted regions with selective seam preservation, regularization option for improved tessellation quality and ...
This is an important, but subtle detail. Allowing anyone (artists, game designer, tester) to press a button and show live perf numbers is invaluable. "Why did that pass go from 1.4ms to 1.9ms at this angle?" So many things slip unnoticed with offline-only perf captures.
This is great. Two related thoughts!
- Having detailed performance available at any time in any build at a single hotkey, structured to fit your application and displayed inline, is super valuable - even if you also use external profilers. microprofile at Roblox was like that.
- It shouldn't matter in theory, but in practice I feel like there's correlation between units you use to think about performance and the resulting performance. We often talk about milliseconds per frame but a millisecond is an eternity! 30 microseconds is something you pay attention to, 0.03 milliseconds may slip by unnoticed.
@vassilis3D@JarkkoPFC@SebAaltonen Ahh, good point. If you had a long triangle edge (even one that doesn't clip a border) it would bend, and then the shadow sample would be slightly off. It would look completely broken unless you want to tessellate, which is 100% not worth it.
Really cool approach for low cost stochastic local lights. My one question though: How are the point light shadows rendered into octahedral space? @JarkkoPFC@SebAaltonen https://t.co/Wu6neh57OX
@JarkkoPFC@vassilis3D@SebAaltonen Thanks! I was curious if there was some magic to render in one pass. In theory, it *could* be done using a GS (check if the triangle touches any seems and split). It also (I think?) could be done with a CS that preprocess the triangle stream, but that seems pretty rough.
@AndrewHelmer47@bgolus Thanks! I remembered they had a custom MSAA resolve, but didn't realize they had temporal information as well, but without a jitter pattern. Just added a reference and updated the page.
@bgolus That's right, I vaguely remember TXAA. Do you have any good links? I checked the documentation and it clearly has a temporal component (the SDK asks for motion vectors) but the video presentation is delisted, and I can't find any slides.