Prozedural shader
andreasgr_4876eb977e
Posts: 6
Why is there a difference with the same procedural shader between a primitive and a vertex object with the same dimensions ?
Doc4.jpg
640 x 480 - 91K
Post edited by andreasgr_4876eb977e on
Comments
Is there a displacement mapping in your shader ?
No displacement in this shader
I think that you must wait for 3DAge or EP for the answer...:)
Do the various shader functions use UV space, local space or global space?
The reason I ask is that the differences between the two look like they are related to the scale of the effect. Also a primitive is not a vertex object, so Carrara may handle it's internal UV differently than the vertex object.
More than likely however, (and I may have a hard time articulating this properly, so if I sound like I'm full of crap, then please forgive me), but I think it has to do with the scale of the objects. If you inserted a sphere primitive and it was larger than the vertex sphere (for example) and you re-sized it to match the vertex sphere's size, then perhaps Carrara is still using the sphere primitive's local space to determine the scale of the effects- or vice/versa.
So, the reason I suggested what I did, is that if you create a vertex object in a large or small scale scene, and import that into a medium scale scene and resize it (using the objects' Motion tab), and then open the object in the VM, the objects' dimensions and working grid are still based on the scene size in which it was created. At least from my observations.
I could be full of shit though. ;-)
I think Evil may be correct in his hunches.
To see if it's a UV mapping issue, which was my first thought, take the two objects (primitive and vertex) and place them right next to each other, and then apply the identical checkerboard pattern/shader to each. If it's a UV difference, you should see it immediately. I did a quick test, and the mapping seemed identical.
So I think it might be what Evil mentioned about Local/Global space for procedurals. I forget how Carrara handles it, but the generation of procedural patterns can either be based upon the scene or the object. In one case, as you move the object, it appears that the procedural pattern is fixed and the object is just moving thru the pattern, and in the other the pattern is "attached" to the object. So the appearance of the identical procedural might be completely different depending upon how the coordinates are specified.
I just had an experience with a project I was working where the procedural had a choice for Global, Local and UV space. Using Global space, I had to scale down the effect (if I'm remembering it correctly) to appear at the size I wanted it on the model. I also had texture crawl as the model moved through the scene. I actually expected this and was contemplating using it for an effect, but decided it was to distracting. I then tried local space and the effect scaled about how I expected it, however I still had texture crawl when the object was animated which kind of surprised me, because it didn't do it for all procedurals. The UV was the most stable, but I had to scale the effect up quite a bit to even see what effect it was having.
I make a new scene, create one primitive and one vertex ball with the same dimension.
I converted the primitive to vertex and the shader looks good like befor.
Then i create a ball in this vertex object with the same dimensions like the converted ball and the shader looks good too.
If i copy the converted primitiv and paste it into a new created vertex objekt then the dimensions of this ball are appr. 610 % higher.
Left ball vertex object scaling up in vertex room to 610 % and then scaling down in assebly room to 16,5 %.
Shader looks good.
Ball behind primitiv converted into vertex, in front created vertex ball in vertex object from converted primitiv, Shader ok.
Where came these dimensions changes from ?
That's outside my sphere of knowledge. Maybe someone with a little more knowledge can come up with a definitive answer.
Any scaling done in the "Assembly room" is a false scale. the only real scale is in the modeller rooms , (or in vertex Edit mode) in the Assembly room
Primitives are a quick and simple method of adding items to a scene, such as a wall, floor etc, but perhaps not the best way to begin making a more complex model, ...that should be dome in one of the dedicated modeller rooms,
You should be able to convert primitives to models without any issues,.
I can't reproduce the scaling issue you've mentioned,.
in the Assembly room,... insert a new Sphere (default 6ft)
Then .. Insert / Vertex object,.
In the Vertex modeller ,.. create a new vertex sphere,. and make it (6ft) (using the scale options) in the right hand panel.
Return to assembly room.
In the Assembly room,. Select the primitive sphere,. EDIT / Convert to other modeller,. then edit in vertex modeller,. Select all / Copy (leave vertex modeller) ,... Edit the "Vertex Sphere" ... Edit / Paste,.. to add the copied (converted primitive sphere)
Both of these meshes "converted primitive sphere" and the original Vertex model Sphere show as being the same size (6ft)
no scale difference.
can you reproduce this ?, and perhaps provide the steps to replicate the issue. (as above)
Hope that make sense
Edited to add,.
Yes,. Evil Producer is spot on with the reasons for the different appearance of the shader,. it's ll down to the UV's and the different mapping options for Local, Global, and object UV's.
:)
Hi, if i do this with the default value (6ft) no differences between the converted primitiv and the copied version of it.
But if i change the size of the primitiv to 1 ft and convert it, stays at 1 ft in vertex room, and copied this in another vertex room the sphere becomes 6 ft.
That the look of the shader changes between local, global and uv is not the problem.
But the different values for objects with same size make me a little confused :-S
I think this is a slight reversion to primitive thing,. ...possibly a bug,. in the way the primitive is being handled
Interestingly, if you "Duplicate" the converted 1ft primitive, in the vertex modeller,. and then Copy that duplicate into a new Vertex object,. it''s 1ft as it should be,.
It's as if it's remembering that it's really a primitive 6ft sphere,.. until you make a new version of it which embeds the changes you've made.
.
unusual and unexpected. but not something that should affect your modelling work-flow,. the vertex modeller already has Vertex primitives, and it's more efficient to use those rather than converting,. although I think it's something which should be reported and looked at,
.