How to render huge polycount?

   4748   12   3
User Avatar
Member
7 posts
Joined: Aug. 2008
Offline
Hello,
i have model with 600 milion polygons.
It is possible to render with mantra? Please advise me how to do it.
User Avatar
Member
443 posts
Joined: Sept. 2012
Offline
Yeah, it's quite possible.
I would suggest you to use pack primitive for the same. Pack primitives are very memory efficient.
You can also use Delayed Load Shader.
User Avatar
Member
7 posts
Joined: Aug. 2008
Offline
Thanks for responding. I have to try.
User Avatar
Member
7 posts
Joined: Aug. 2008
Offline
My model is ply format. It is a good format for this rendering? I try to render with delayed load, but it crash because out of memory. I have a 64 gb ram.
User Avatar
Member
258 posts
Joined:
Offline
Is this a single model created with some kind of laser scanning? My head already hurts. Delayed load and packed primitives work great for crazy amounts of polys from duplicated/instanced geo, not sure if it is one crazy large data set.

I have never dealt with ply but read up a little on it, can you elaborate on what the geometry is and how it was created?

Obviously 600 million polys can ruin anyone's day…
User Avatar
Member
7 posts
Joined: Aug. 2008
Offline
Yes, model is created from laser scan. It consist from 204 pieces. I converted the geometry into a packed primitives and renders it as 204 Delayed load shaders. It works, but still use lot of ram.
User Avatar
Member
7 posts
Joined: Aug. 2008
Offline
I need something like a vrmesh.
User Avatar
Member
35 posts
Joined: Oct. 2008
Offline
Try reducing the Tile size value in render>properties.By default its set to 16 you can reduce it to 8 or 4.
User Avatar
Member
48 posts
Joined: June 2011
Offline
I would think the only workable solution to this would be to find a way to process all that data into a more useful form. It would be useful to know what the scan is, and for what purpose you need it rendered. I've never worked on anything where laser scan data was rendered directly, as it is not only prohibitively heavy, but is usually messy as hell and pretty much impossible to texture, unless you went to some lengths to disguise it using world-space procedural displacement/textures.

One way inside Houdini to very effectively boil a heavy scan down to useful manifold geometry could be to run it through VDB from Polygons. That would require that the scan was reasonably manifold and complete - it wouldn't work if you have any significant holes in the surface. I have no idea if the VDB from Polys node could actually handle 600-million polys without running out of memory, but if it can, you can pick a voxel size that will give a decent level of detail, and then convert back to polygons… probably only a few million.


It might be possible to use the Remesh node to directly process the geometry into a more usable form too, but again, I've no idea if it could handle this kind of input or not. At least with Remesh, you could process each piece separately.
User Avatar
Member
184 posts
Joined: June 2010
Offline
The problem with Remesh (ditto PolyReduce) is that it's single threaded.

Depending on how many polys are in each individual piece, it could be a PITA getting appropriate settings, tweaking between bakes, and it will consume a fair amount of additional memory.

Whenever I need to reduce poly geometry in the multi-millions, I take it into another application. For example, 3DSMax's ProOptimize is pretty good, and features realtime tweaking once it's pre-processed the geometry.
User Avatar
Member
8575 posts
Joined: July 2007
Online
note that converting geo to packed geometry does not necessarily render it as delayed load
it will do so if the geo is loaded as packed disk primitive or packed alembic
or if you use instancing with instancefile attribute
which any of that you can do for your geo

to make each of your 204 pieces more memory friendly, convert each of them to Poly Soup
which will work the best if you don't have varying vertex or poly attributes
and if you have vertex uv or N, consider if you can promote them to point beforehand
then save them to disk, maybe like individual bgeos
(packing will not help you as they are unique so there is no data shared between pieces)

then for example create Instance Object, add 204 points at the origin, create instancefile string attribute on each of them pointing to the bgeos and set instancing to Fast Point Instancing
Tomas Slancik
FX Supervisor
Method Studios, NY
User Avatar
Member
2624 posts
Joined: Aug. 2006
Offline
Hi,
Laser scan data is never meant to be rendered directly, you need to break it up and then re topologise to a manageable format .

regards

Rob
Gone fishing
User Avatar
Member
3 posts
Joined: May 2012
Offline
circusmonkey, they are talking about meshes.

circusmonkey
Hi,
Laser scan data is never meant to be rendered directly, you need to break it up and then re topologise to a manageable format .

regards

Rob
  • Quick Links