Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Any ideas how to increase the render distance way further?

Because that's where I always get stuck. There are so many cool algorithms and ideas that I have like combining ray tracing with meshing and even like imposters for the distant chunks.

But this is getting very complicated with contrees and raytracing/marching etc.

 help



With raytracing having a far render distance is actually fairly cheap and simple compared to polygonal worlds (good looking LOD is hard).

Some reasons why we don't have a super far render distance, in order of importance:

The biggest is GPU memory. The octree that holds the world gets gigantic at large sizes. We'd have to swap parts out as the camera moves. We can do that but haven't gotten there.

Noise: raytracing looks incredibly noisy if you simply cast rays far into small geometry. Hence we even have LOD for blocks, even though they're not needed for efficiency, they're needed for visual stability.

If you're unlucky and a ray has a lot of near misses with geometry, it does more work than other rays and it causes GPU performance degradation. It's rare but to raytrace far you have to optimize for a certain amount of ray steps, we actually put a bound on this.

We find having fog gives some visual unity and sense of scale. With far away fog, the world looks VERY busy visually.


Is there any way to have something like a distance blur? e.g. as rays travel further you reduce the number, subsample then apply a gaussian(or algo of choice) blur across those that return, increasing in intensity as the rays angle gets coarser?

It'd be really neat to have some way of enabling really long-distance raytraced voxels so you can make planet-scale worlds look good, but as far as I'm aware noone's really nailed the technical implementation yet. A few companies and engines seem to have come up with pieces of what might end up being a final puzzle, but not seen anything close to a complete solution yet.


Yup you could blur, but it is not cheap, and it doesn't feel very satisfying to look at blurry stuff in the distance.

We have a "depth of field" implementation for when you're in dialog with an NPC. There it looks nice, because you're focused on one thing. But when looking around its not that great.

Ideally you want it close to native res in the distance, but without any wobble produced by noise as you move. This is really hard.


Is it possible to fake a world curvature so that using a fog isn’t as necessary, as far items sink below the horizon?

That is tricky with raytracing, since rays would need to be curved, and at least in this raytracer, ray steps are not all equal in size so doing that correctly could be very expensive.

But is generally a cool idea.

Fog is good too, though. It helps with a sense of scale, and it helps colors and distance noise not be too busy.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: