often I need cylindrical brush lines like at the viewport screenshot can be seen. A stretched spherical mapping doe’s the job, but the final rendering doesn’t show the same quality. It looks like Rhino is using the mapping without to taken the polygons of the render mesh in account. The cap of the cylinder has a few polygons only and V-Ray doesn’t work. OK, I can set a fine custom mesh and it works better, but it needs to be quite fine to show a good result. Could it be possible that the render process works like Rhino viewport?
Hi Micha, thanks for pointing that out. We’ll be working on a solution right away as we’ve logged it in our internal bug-tracking system (ID number: VRW-2911) for further investigation. We’ll let you know when there are any updates!
Hi Micha, to give you an update on this - it appears that Rhino viewport uses a simplified rasterizer, hence it should not be considered precise. We’ve tested this with other renderers and they do render exactly the same.
Keep in mind it is a simplified game engine preview of the real thing, to the best abilities of the Rhino OpenGL shaders. In such cases, it is expected for these shaders to cut corners and sacrifice precision for performance, especially for well-known shapes like cylinders and spheres (rotational primitives with high degree of symmetry).
Nothing much we can do on our part, since the actual mapping coordinates are provided by Rhino API when the object is triangulated to mesh and V-Ray only takes those coordinates.
I understand. Couldn’t not the core provide a mesh polygons independent mapping system too? So, very low polygon models could be used and the mapping would be perfect looking.
Here a simple example - a box with a spherical brush texture. It’s a pity to increase the polycount for the mapping only since the shape of the cube is perfect.
The actual issue here is caused by distorted and skewed mesh UVs and not the mesh topology.
When you subdivide the mesh more the problem is still there - you will be able to see it if you zoom in close.
It is not that easy to explain but you can think about it in the following way:
If you only have one square face on top (made out of 2 triangles) there is no UV space vertex position that can let the texture be placed the way you want (producing a circular pattern from a linear texture).
When you start subdividing the top face a much closer approximation can be achieved.
The lines will be straight still in each individual triangle.
I also want to point out that the viewport result is also glitchy and not at all perfect in most cases.
To reliably render the effect you originally showed you’ll need two texture patterns - one with the stretched noise for the sides and one with the circular brushed pattern for the cap.
The two can be parts of a single texture.
You’ll then need to edit the UVs of the mesh to fit the map:
The quick way is to increase the mesh density by object custom mesh. I wished I could disable the optimized Rhino fake view, so it would be easier to the problem and to optimize the mesh. I will ask the McNeet team for showing the mapping like used for rendering.
The quick way is to increase the mesh density by object custom mesh.
This will only work for the cylinder right?
I don’t see any other real application of this approach.
And as I mentioned you can’t know how the mesh is going to be subdivided making this workflow fragile.
I’d recommend the custom texture + UV unwrapping method.
It will also allow you to map the Anisotropy Rotation in case you decide to use it.