Zbrush doesn't use traditional rendering yet it can handle billions of polys in the viewport, in realtime, all on the cpu. What is it doing behind there?Zbrush >>> Mudbox / Blender / 3dCoat
>>587577It is using advanced octree manipulation. It is converting the polygonal information into a partitioned tree and then using screen-space projection or something to convert the polygonal database into pixels. So in essence when you paint or manipulate the data in Zbrush it's not in traditional 3d as such but more of a 2.5d in this sense. It projects the information on 2d surface and then it gets converted back to 3d again inside the memory. This is my haywire explanation, I'm not a software engineer.Traditional 3d software uses lot of other data to describe a polygonal model and it always keeps all of this data available in memory. Zbrush only accesses small partitions of this information and does that in very different way. I think this is the main reason why the UI is so different from other programs because the data exists in so different format you can't have similar manipulators and transformations as in other 3d programs.
>>587584And it only needs to rasterize the data to pixel resolution. So you have a 1024x1024 size viewport for example, regardless of amount of polygons in memory or in the model it will only manipulate them on pixel level. So any time you change the topology zbrush only accesses this 1,048,576 size of grid. In essense it only displays 1 million "polygons" regardless of the original topology resolution. Then it extrapolates the manipulation to the big dataset in memory.This way you can have 50,000,000 polygon model but zbrush will only rasterize it to match the amount of pixels in viewport (which in this case is only 1mil pixels/polygons).
>>587584>o in essence when you paint or manipulate the data in Zbrush it's not in traditional 3d as such but more of a 2.5d in this sense. It projects the information on 2d surface and then it gets converted back to 3d again inside the memory. This is my haywire explanation, I'm not a software engineer.>1/2 a dimension>This is my haywire explanation, I'm not a software engineer.
>>587577Its all screen space based renderingpixols what they call it, pixels with depth information and angle informationjust copy the color for the angle of a prerendered sphere in memory like matcaps and there is no need to render that pixel at all, use depth information to make fake shadow also since only one pixel within a pixel you get culling for freealso no perspective no normal smoothing, no nothing, even 1980ties first 3d packages had more complex shading methodsspecular shading is just the same fucking sphere but prerendred again>>587584>>587585this is wrong, deformations are calculated per vertex not per pixel, im not sure how projection is done and i have no idea how 3d brushes work, but per pixel deformation would break at extreme angles and blow up your mesh geometry, also since most brushes now have some weird vertex averaging, noise effects and other shit its clear its vertex accurate and the brush will snap to the closest pixel at smaller densities
>>587592You understood it wrong. Only the viewport display is done this way. You paint on the screen and it gets projected back to the vertex data and interpolated on the vertices.>>587588You certainly are very clever. I bet you are senior artist somewhere big?
>>587588Everything he said makes perfect sense and matches up with Zbrush's original design for 2.5d shit
>>587584The only part of this explanation I don't buy is that the unique rendering method justifies the horrible UI. They added a transform widget because people asked. Zmodeler exposes the exact same polygon operations that all standard software does.The only explanation for the UI is that they decided on it at the beginning and haven't felt like changing it.
>>587623>You understood it wrong. Only the viewport display is done this way. You paint on the screen and it gets projected back to the vertex data and interpolated on the vertices.If it created the render result based off the pixol data it would create holes where 2 pixels overlap and and sculpting behind the mesh would not update properly and create artifacts everywhere that would keep disappearing as the actual geo operation updates, and if it redid the operation again then there is no need for the first approximationso i dont see the need for doing it twice, much better solution is to apply the real vertex deformation and rerender only part of the screen you expect to be affectedI mean i guess this does happen for any geometry baked into the screen pixol information, but i just dont see how more complex brush strokes would be able to be rendered properly from so little information as there is on the screen
>>587623>>587667Also i took a model wrapped a lot of geo around itself and tried doing some one step deformation and made sure that the wrapped geometry was obscure both from my screen point of view and the brush planeIt still rendered fine with no screen holes, and you would expect this to not be the case it it used simplified 2d projection operations for rendering as well as real 3d operations in the memory, you would expect some disparities needed to be updated
>>587667>sculpting behind the mesh would not update properly and create artifacts everywhereYou *don't* see artifacts appearing momentarily when you sculpt stuff? If I do sculpting near an edge a little black border happens if the pixols that'd make the silhouette get pushed back.
>>587671Oh, soem artifact do show since only part of teh screen gets updated during teh suclpting, if you intersect it you might get soem small artifacts.What i mean is artifacts directly on the sculpted surface, geo that you would pull form behind the model would need to be updated every few frames or every hundred of ms or half a sec. You would see the geometry changing after the a fact as you continued your brush stroke.And i just dont see this happening, all artifacts i see are ether caused by pixol occlusion, passing the box zbrush redraws when you sculpt or the simplified shading bugging out.
>>587685thats just propaganda