Uploaded a minimal (single cginc) atmospheric scattering implementation for Unity to use as a reference for other projects, maybe someone else will find it handy as well: https://t.co/qTzU1o137D
@elefantopia@nikefootbag@guycalledfrank It does not need to encompass it. The self occlusion factor is determined by the direction to the capsule "center line" (line between the two capsule points), meaning self occlusion is prevented even if the capsule does not match the geometry exactly.
I uploaded a Unity package containing a capsule occlusion implementation, useful for rendering character occlusion in situations where SSAO is not viable. Check it out at: https://t.co/ODhuOzAl6x
@nikefootbag@guycalledfrank The occlusion on the helmet comes from the capsule used for the clavicle, and for the pouches it comes from the spine ones. Basically as long as the normal direction is facing towards the capsule you will end up with some occlusion.
@seanaldmcdnld ...plus, you'll always be allocating memory for occluded pixels (outside of frustum). It does give you very stable pixels for reprojection though (especially when amortizing pixels using a Bayer matrix or something), I'd say that's the one advantage it has over a screen buffer 🙂
@seanaldmcdnld Yes exactly, it really starts to break down at high altitudes. I imagine you can mitigate it somewhat like you describe, but honestly the FOV issue is far worse: High FOV will oversample and low FOV will undersample (does work OK for VR though, since that has a fixed FOV)...
@seanaldmcdnld If you still are interested in the spherical buffer, it goes like this: 1. When updating the buffer, calculate rayDir from UV using polar coordinates. 2. When compositing, calculate UV from rayDir. Attached image shows how to convert between the two (in HLSL). Happy rendering! ☁️
@seanaldmcdnld Hi Sean! This method used spherical/polar coords, so essentially rendering to a 2D texture using azimuth/zenith as XY coords. I have since swapped this for a normal screen buffer though, you can reproject just as well, it has less artifacts and scales better to various FOVs!
@AlejandroDaJ Mainly the difficulty of keeping it up and running with the changes Unity was doing at the time and the overhead of maintaining and supporting it as a product. I don't know of a particular asset, but the new native stuff looks pretty good, though looks like it might be HDRP only.
@chribbe1 Yes actually! You can set up the config object to keep certain color channels and bake occlusion or curvature to the alpha only (though to be fair I have not tested this yet...)
I uploaded a small AssetPostProcessor for Unity that bakes AO/curvature data to vertex color channels (it auto-updates if you change the FBX file), mainly intended for mid-poly and procedural workflows. Check it out here if you are interested: https://t.co/07GdiJzBB7
@FewesW@chena_cpp I made some tiny modifications, I used the power of 4(or 2 or any value bigger than 1) of the estimated density to multiply the cloud alpha, and the result is much better, I can also set higher blend factor for better covering the scene behind in this. way.
Testing transparent compositing via weighted depth buffer (forward compatible, no scene depth required). Had previously written off this approach b/c of noise/temporal stuff making it jittery but with structured sampling it is stable. Works OK even in this worst case scenario.