Opacity of textures...?
-
Hi All,
I am just trying to make a sketchup model of my house, but I have a problem with opacity of materials. Even if I use materials with opacity 100 I still see some textures or lines on the area under it, even if I am looking on it on longer distance...
I use standard textures and colors provided by sketchup with opacity 100. This problems occurs particulary if I have in group material what is under area and material what is up the area... (distance between these materials is e.g. 5 mm or less)
Maybe it's only any beginner's error - i tried in on sketchup 5.0, 6.4 and also sketchup 8.0 with the same reason... Can you help me pls what I do incorrect? Thanks forward...
-
Hi Dalibor,
This phenomenon is called "Z-fighting" - Z means the depth "offset" of objects (materials) and in 2D applications, you generally have some option to "bring to front" or "send to back" etc.
In 3D applications like SketchUp, this should be done by giving real thickness ("Z value") to objects and when two faces occupy the same plane, SketchUp cannot "decide" which to display thus the "fighting" of these materials.
Now you say that they are 5 mm apart from each other. I am not sure... To me, this does not happen if I move one of the faces 5 mm above. Are you sure there is no other face in there?
-
Hi
Really now i seen that difference is less. Is it possible by any way to "bring to front" any area?
But other question. Line (window corner) in the wall is more than 10 mm from the end of the wall
but if i look from large distance, I seen the line...
Is it any setting in Sketchup or is it any possibility to not see lines what are more than 5 mm under area?@gaieus said:
Hi Dalibor,
This phenomenon is called "Z-fighting" - Z means the depth "offset" of objects (materials) and in 2D applications, you generally have some option to "bring to front" or "send to back" etc.
In 3D applications like SketchUp, this should be done by giving real thickness ("Z value") to objects and when two faces occupy the same plane, SketchUp cannot "decide" which to display thus the "fighting" of these materials.
Now you say that they are 5 mm apart from each other. I am not sure... To me, this does not happen if I move one of the faces 5 mm above. Are you sure there is no other face in there? -
There is no "bring to front" setting in SketchUp unfortunately so you will need to solve this by modelling. Can you attach the skp file as well?
As for edges "bleeding through" - that's a different issue. An edge is always displayed at 1 pixel on screen. Now if you have two faces very close and zoom out, the distance between them will at some point be smaller (on screen) than 1 pixel and the underlying edges will start bleeding through. You cannot really do anything about this but
- either hide those edges (use Shift+Eraser)
- or do not care but when exporting an image, export at a higher resolution - when that "gap" would cover more distance than 1 pixel.
-
Hi, I am including my skp file (my planned house)...my house plan
@gaieus said:
There is no "bring to front" setting in SketchUp unfortunately so you will need to solve this by modelling. Can you attach the skp file as well?
As for edges "bleeding through" - that's a different issue. An edge is always displayed at 1 pixel on screen. Now if you have two faces very close and zoom out, the distance between them will at some point be smaller (on screen) than 1 pixel and the underlying edges will start bleeding through. You cannot really do anything about this but
- either hide those edges (use Shift+Eraser)
- or do not care but when exporting an image, export at a higher resolution - when that "gap" would cover more distance than 1 pixel.
-
This is an interesting approach, I have to confess. Yet it could work however you did not place those faces above each other but they are just shifted on the same plane.
They are on the same plane and only moved on that plane, not up.
(Green is the way you shifted the faces and the X'd red is which way you should have done it) -
I see your problem...and it is z-fighting. Offsetting laterally, the way you have done will make no difference. You need to offset perpendicular to the surface. Putting it simply, if you have two surfaces occupying the same 3D space, then you are going to get that effect.
-
When we are at it, really... Is the reason of your modelling this way to display "raw" brickwork and then plastered/painted version? There could be other ways - or at least combine them. Use layers for instance to hide certain elements (like the brick walls when you display the plastered version).
-
@gaieus said:
When we are at it, really... Is the reason of your modelling this way to display "raw" brickwork and then plastered/painted version? There could be other ways - or at least combine them. Use layers for instance to hide certain elements (like the brick walls when you display the plastered version).
Hi Gai,
Thanks a lot for the info about possibility of erasing line with shift+erase - it helped me a lot.
(I think it's application problem but now i understand how sketchup works...)
exaple for hidden lines...
Now I understand also z-fight and I know how to solve my building...
Maybe it should be helpfull in any new version of sketchup to have possibility to solve z-fight with "bring to front" technology and not showing the lines what are under other area - but i understand it should little slow down the alghoritm...
Thanks for the help. -
In the real world objects all have thickness.
A roof is never a 'mm' thick - for even when it's a 'sheet material' it's laid over boards and beams etc...
If you model objects with realistic thicknesses then z-flighting is generally avoided, as long as they are not thin objects like posters etc...
As has been said if you use layers to hide internal objects that are not seen in an external view etc then z-fighting is further avoided...
Where your roof lets the wall tops bleed through on the gables it would not happen if the roof's thickness were realistic - 50-100mm say... -
There can be no 'Bring to Front' command in SU or any other 3D program. That is only appropriate in a 2D application. If you want something to be in front in 3D, then that's the way you build it. OpenGL needs to know which surface is further away in order to hide it. It can't do that if both surfaces are equidistant.
If you separate such surfaces by even a fraction of a mm then z-fighting stops immediately. Edges showing through a surface which is separated are a different issue. That occurs because all edges in SU are represented as 1 pixel thick. If you zoom out to the point where 1 pixel represents a distance greater than the separation between the surfaces, then the edges will start to show through.
You can always solve this by either increasing the separation distance, hiding the offending edges, or turning off edges altogether. Most other 3D applications don't show edges anyway; it's just a rather handy feature of SU's native display...and those edges don't appear if an object is rendered.
-
Well, I have actually seen such features as "depth offset" in other 3D rendering apps - but they are mainly there because they have Z-fighting even when faces are separated so consider this as a "bugfix" or "workaround" there (I would much rather like to see no Z-fighting with correctly modelled objects at all).
That program uses directx, no opengl however. I do not know if this has to do anything with the phenomenon.
-
Hi folks.
Even with thicker roofs, walls, etc, the bleeding through problem will be present if you zoom out noticeably.
This is a limitation of Open-GL. When the difference between two separate surfaces becomes too small, relative to the distance between the camera and these surfaces, Open-GL cannot discriminate between the two and show both.
Just ideas.
Advertisement