HNHacker News
TopNewBestAskShowJobs

berkut

2,828 karma · joined April 4, 2011

Renderer software developer in the VFX industry...

https://pixelesque.net/ https://pixelesque.net/blog/

submissionscomments
berkut··on Ask HN: Could you share your personal blog here?
https://pixelesque.net/blog/

(A newly-hosted - February 2023 - re-creation of two blogs, one archived I used to have on blogspot/wordpress).

berkut··on Random Number Generator Recommendations for Applications
Which is interesting, because for MC simulations for rendering (path tracing for example) fast and high quality random numbers are very important...

Although there are alternatives like using low discrepancy sequences (Halton, Sobol) which don't explicitly need the random number values generated from a PRNG itself which are used as well...

berkut··on Syncthing: A continuous file synchronization program
It also connects to many "Discovery" servers on the internet in its default configuration, which you don't need enabled if you're just syncing between machines on an internal network.
berkut··on Sam Altman says era of remote work is over
If you actually look at the quote and not the flamebait title, he says the "experiment" of there being no loss to creativity with remote work is over, and that the tech isn't there yet for early-stage startups.
berkut··on Beautiful branchless binary search
Oooooh :)

Thanks!

berkut··on Beautiful branchless binary search
Yeah, it's mildly annoying there's no (at least to my knowledge?) compiler hint like the '__builtin_expect' ones to tell compilers that the values are very unlikely going to be predictable with enough accuracy to allow the branch predictors to be useful in general, and to use a cmov instead of the traditional branching instructions because of this.
berkut··on Beautiful branchless binary search
> "The reason you mainly want branchless code is for security reasons where a timing sidechannel could reveal information."

Erm, that likely depends on the industry you're in?

In HPC, branchless algorithms are often needed to use wide architectures (SIMD / GPUs) to their full capacity...

berkut··on Ways to shoot yourself in the foot with Postgres
MySQL InnoDB does I believe...
berkut··on LLaVA: Large Language and Vision Assistant
Seems better with abstract stuff than specifics, at least in the very limited tests I've done:

https://imgur.com/a/tJ8VRa5

It seems to think a Seal is a Penguin, although it is front-on and arguably could be a chick based off the colour, but...

berkut··on Raytracing on AMD’s RDNA 2/3, and Nvidia’s Turing and Pascal
Yes, but normally 4- or 8-wide is the norm: the wider you go the more sorting you have to do to traverse things in order or find the nearest hit which has an overhead (hardware may help with this, but it's still an overhead).

Previous indications from Nvidia about their BVHs don't seem to show anything about very shallow trees for any of the BVH algorithms that OptiX supports (scroll to bottom for reverse visualisation of a BVH hierarchy on top of the Stanford Bunny model): https://drive.google.com/file/d/1B5fNRFwv2LsGlCBJ8oKYRiiDUtL...

berkut··on DreamWorks releases OpenMoonRay source code
Those are generally being used on much smaller productions, or at least "simpler" fidelity things (i.e. non-photo CG animation like Blizzards's Overwatch).

So for Pixar/Dreamworks style things (look great, but not photo-real) they're useable and provide a definite benefit in terms of iteration time for lookdev artists and lighters, but it's not there yet in terms of high-end rendering at scale.

berkut··on DreamWorks releases OpenMoonRay source code
If you only ever-so-slightly perturb paths, you generally don't get anywhere near as much of a benefit from monte carlo integration, especially for things like light transport at a global non-local scale (might plausibly be useful for splitting for scattering bounces or something in some cases).

So it's often worth paying the penalty of having to sort rays/hitpoints into batches to intersect/process them more homogeneously, at least in terms of noise variance reduction per progression.

But very much depends on overall architecture and what you're trying to achieve (i.e. interactive rendering, or batch rendering might also lead to different solutions, like time to first useful pixel or time to final pixel).

berkut··on CGI Renders Are Real Photos (2017)
Sorry, I mis-understood: I agree.
berkut··on CGI Renders Are Real Photos (2017)
In VFX at the high-end (the smaller studios do often take shortcuts) we do model full layered materials with thickness, at least for mid to hero-level assets, so we would do the glass with proper volumetric thickness, with fully-correct inter-reflecting/refracting dielectric BSDFs modelling the glass, with correct IOR and total internal reflection.

It is slower to render than using "thin glass", and lighting the checkerboard surface underneath the glass isn't as efficient (you can't do naive Next Event Estimation through the refraction of the glass volume, but you can do manifold walks to solve that), but we do it at that level of fidelity often enough when required and have been for years. There are times when it's not required though, so approximations can be acceptable in more forgiving situations.

berkut··on Microsoft Teams is getting big performance improvements next month
SaveAs dialog appearing in the background in VSCode (https://github.com/microsoft/vscode/issues/146422) is insanely annoying...
berkut··on What if mass storage were free? (1980)
I suspect that was really 1 GB?

3.5" HDs of over > 20 MB for IBM PCs were around in IBM PCs at the time.

berkut··on US aircraft shoots down new airborne object over Canada
Their F-18s can't fly as high (without doing zoom climbs) as the F-22 (which has very large control surfaces which help with this).
berkut··on Building a Cloud Database from Scratch: Why We Moved from C++ to Rust (2022)
For unique_ptr, in a release build, no: but in a debug build there's overhead, and more to the point, stepping into the deference in gdb/lldb at least in my experience requires stepping through the internals, to the point some of the code we use with them is #ifdeffed hackily to use raw ptrs in some cases to avoid this annoyance.

For shared_ptr, the atomic ref counting can cause surprising overhead due to contention in multi-threaded scenarios, even if just accessing the pointer, depending on how the shared_ptr is passed through functions...

berkut··on Google and Mozilla are working on iOS browsers that aren't based on WebKit
IE 4 and 5 were innovative (IMO as someone who used both at the time - 1998-2000 - and actively converted family members to IE) compared to Netscape: it had a cache which worked consistently (important in 28.8 modem times) - Netscape would ignore the cache in some situations, i.e. resize the browser window and it would re-download images, even though it had them in its cache, and also IE had things like smooth scrolling which helped make things "nicer" to scroll and feel better from a UI perspective, and things like "make favourites available offline" feature, where it would download a bunch of full pages (whilst you were dialed up), and you could browse them after you disconnected.

After IE 6, things when downhill fast with the stagnation, but before that point, IE was a good browser.

berkut··on Microsoft Azure Outage
status.office.com had been down for 15 mins, but it's back up now...
berkut··on Ask HN: Why are toggle switches replacing checkboxes? Isn't on/off less obvious?
While I think that's somewhat true to a degree, I think that might be largely because where checkboxes are used (on desktop), there are normally OK or Apply buttons which do the actual action, whereas where toggles are used, things are normally "live", and so they don't have OK or Apply buttons...
berkut··on Gimel Studio: Non-destructive, 2D image editor
It's "two" clicks on a very simple node network: if you look at some of the > 1000-10k node networks used in VFX for things like compositing/image editing and see artists re-arrange networks, it all adds up cumulatively, and having a fluid and efficient workflow is critical.
berkut··on Gimel Studio: Non-destructive, 2D image editor
Seems a bit odd to have a 16-bit workflow (clearly not full float32 then?) if it supports EXR files, which natively support 32-bit float (in addition to half float)? Given they appear to be using GLSL for the pixel processing, surely 32-bit float would be trivial to support as well?
berkut··on Post-processing is ruining iPhone photos
That's only available on the Pro phones though...
berkut··on A practical comparison of build and test speed between C++ and Rust
I've got a ~9k loc Bevy "game" I'm writing that doesn't use dylib and takes > 20 secs every update, purely because of the linking (I'm not using mold yet, but am using lld)...

i.e., I type 'cargo build', it compiles the single .rs I changed almost instantly, but then I'm staring at:

Building [=======================> ] 314/315: landscape(bin)

for the next 20 seconds.

berkut··on A practical comparison of build and test speed between C++ and Rust
Yes, muscle memory :)
berkut··on A practical comparison of build and test speed between C++ and Rust
Gold's pretty slow by today's standards! - it was fast in say 2009 compared to ld, but not really anything to write home about these days.

lldb and mold (mentioned in article) are much faster.

berkut··on A practical comparison of build and test speed between C++ and Rust
In my experience of building large C++ projects on machines with >= 64 threads (especially if using ccache or something), linking is often the bottleneck to incremental compilation as opposed to cpu-bound compilation.

Some of our dev builds actually are split up into separate .so files which is a bit slower at execution time, but means linking is a lot faster, especially when you want full debug info...

berkut··on My Youtube earnings
He has multiple cameras, some of them mini ones for attaching to models and putting them underwater:

https://brickexperimentchannel.wordpress.com/2022/09/12/my-c...

He's also in Finland, so the cost of gear might not be as cheap as in the US.

berkut··on Color Formats in CSS
Picky, but:

> 140 colors just isn't enough—it's even less than the 8-bit color palette available on the original NES console

Is incorrect, as the NES didn't support 8-bit color... From Wikipedia:

"the console can display up to 25 colors simultaneously out of 54 usable colors"

← PreviousPage 2 of 29Next →