John Hable

1.2K posts

John Hable

John Hable

@FilmicWorlds

Rendering Programmer at Meta. Formerly EA, Naughty Dog, Epic, and Unity.

Se unió Şubat 2014
64 Siguiendo3.9K Seguidores
John Hable retuiteado
Sebastian Aaltonen
Sebastian Aaltonen@SebAaltonen·
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.
English
3
3
120
7.5K
John Hable
John Hable@FilmicWorlds·
@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.
English
0
0
0
193
Xor
Xor@XorDev·
What do you need to better debug shader code?
English
27
0
27
6.6K
John Hable
John Hable@FilmicWorlds·
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. #emscripten-builds" target="_blank" rel="nofollow noopener">aomedia.googlesource.com/aom/#emscripte
English
0
0
2
716
John Hable
John Hable@FilmicWorlds·
@SebAaltonen That's very impressive. AI behaves more and more like real programmers.
English
0
0
2
355
Sebastian Aaltonen
Sebastian Aaltonen@SebAaltonen·
When I told it that I can't accept global RenderPass objects anywhere because I need to multithread the rendering, the AI added thread_local keyword to the global as a solution. It definitely knew how to write hacks to avoid work :)
English
1
0
16
3.1K
Sebastian Aaltonen
Sebastian Aaltonen@SebAaltonen·
Just landed a 630 file refactoring. Used AI in the beginning to help with me, but it got too anxious of the scale of the refactoring. It started reverting all the changes when it saw HypeHype's old UI code (virtual function heavy OOP soup)...
English
2
0
38
6.8K
John Hable retuiteado
Arseny Kapoulkine 🇺🇦
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 ...
Arseny Kapoulkine 🇺🇦 tweet media
English
2
42
231
11.7K
John Hable
John Hable@FilmicWorlds·
@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.
English
1
0
0
411
Vassilis Poulopoulos
Vassilis Poulopoulos@vassilis3D·
@FilmicWorlds @JarkkoPFC @SebAaltonen You'd run into similar issues as with old school paraboloid projections, where straight lines aren't straight any more (rasterizer rasterizes in straight lines, but projection space is warped). You could combat that with tessellation ofc, but it gets a bit gnarly.
English
1
0
3
270
John Hable
John Hable@FilmicWorlds·
@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.
English
1
0
0
386
John Hable
John Hable@FilmicWorlds·
@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.
English
0
0
0
54
John Hable
John Hable@FilmicWorlds·
@bgolus Is there a link to the Horizon talk as well?
English
1
0
0
198
John Hable
John Hable@FilmicWorlds·
@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.
English
1
0
0
406
John Hable
John Hable@FilmicWorlds·
@airbusramo Thanks! Although I'm not so much "fascinated" as "completely obsessed to an unhealthy degree".
English
0
0
3
269
airbusramo
airbusramo@airbusramo·
@FilmicWorlds The second I saw the words temporal and MSAA, I knew you were cooking hard. It’s quite a neat concept. The thought never even crossed my mind, but now I’m fascinated.
English
1
0
1
294
John Hable
John Hable@FilmicWorlds·
@0xpatrickhan Indeed. I had also more-or-less moved on from MSAA, but as I think about it more and more I see interesting possibilities.
English
0
0
0
240
Patrick
Patrick@0xpatrickhan·
@FilmicWorlds You don’t hear about MSAA much these days, these are a fun set of articles :) these are the kind of things I love though — relatively simple new ideas in an age where rendering seems to be getting more and more complicated.
English
1
0
0
294
John Hable
John Hable@FilmicWorlds·
@Thomas_ensc @SebLagarde Thanks! I generally tend to go the opposite direction of the industry, so the next post will incorporate new advances in line stipple.
English
0
0
2
424
John Hable
John Hable@FilmicWorlds·
@Marocco2s Yeah. It's one of the many things on my todo list. It's all a static site hosted on an S3 bucket so I need to figure that out at some point.
English
0
0
1
253
John Hable
John Hable@FilmicWorlds·
@kenpex Any rough numbers/platform? At a glance it seems like the numbers work for the platforms I'm targeting, but won't know for sure until I'm further along.
English
1
0
0
333
c0de517e/AngeloPesce
c0de517e/AngeloPesce@kenpex·
@FilmicWorlds I was on a short contract for Fifa many moons ago, when they ported to then-next-gen. One thing I tried was a variant of your idea here - writing a software msaa resolve that did better sampling, edge-aware etc. It looked cool but was too expensive to ship.
English
1
0
1
353
John Hable
John Hable@FilmicWorlds·
@NOTimothyLottes 👍. Makes sense intuitively. I'll give it a shot in the next iteration.
English
0
0
0
150
NOTimothyLottes
NOTimothyLottes@NOTimothyLottes·
@FilmicWorlds Can also do {T=tight} local kernel (not blurring, but will "zipper"), and blend to T when the ratio of 'h' and 'v' get similar (when either directional has similar contrast change to a radial blur kernel)
English
2
0
2
321
John Hable
John Hable@FilmicWorlds·
@NOTimothyLottes Thanks! Do you have any specific thoughts on formulas for blending between horizontal and vertical. The only other variation I've seen is "use both edges (linear) if both edges are below a threshold".
English
1
0
1
225
NOTimothyLottes
NOTimothyLottes@NOTimothyLottes·
@FilmicWorlds The "4 rooks approximation" you came up with is a quite interesting variation. As far as inside triangles vs edges, at 8xMSAA might be able to get quite far by using 2x min sample shading when scaling [should baseline a checker pattern for insides of triangles]
English
2
0
2
338