Jump to content

Jake Koronikov

Resident
  • Posts

    98
  • Joined

  • Last visited

Posts posted by Jake Koronikov

  1. I have to disagree, because in this square layout everything is wrong. The stretch is enormous, the size that uv islands occupy is wrong compared to their real measured area. Still, this square layout produces prefect normal map render inworld.


    I would go back to much more simple example. Here is a half cylinder, with sculpted details normal mapped from subdivided hi-poly version. UV islands are perfectly same size, proportions are perfectly same in uv islands. For testing purposes, I triangulated the mesh before normal bake. The result is same with or without triangulation. I increased the edge padding to 25 px, whitch is insane...

    All I did was that I rotated the islands to different angle, whitch mimics the situation in any complex uv-map.

     

    Again, the issue comes visible when

    - islands are not aligned according to uv-axeses.

    - UV map contains uv-borders that have natural organic edge flow (with angles, eg uv-border is not a straight line)

     

    sieppaa3.png

     

    Sieppaa2.PNG

    And finally, inworld render, where the face normals point to wrong directions across the border line:

    Sieppaa.PNG

  2. Sure, feel free to edit. I will post you here a close up of the most problematic area (in the previous inworld render the area where the seam is most visible).

    I also tested a moment ago an UV map that is exaclty consistent with size. I can post you later that image too...but I am quite sure the size of uv-islands is not the issue here. The issue is somewhere in the tangent space, vertex normals across the uv border, averaging of those vertex normals, shader vs. baker difference in handling the tangent space...dont know.


    What makes me wonder most is the fact that other real time shaders I tested (well..umh.. you cant really call them engines but..) work fine. Those are Blender GLSL viewport and XNormal 3D view. Only this SL gives me crazy renders. With both LL viewer and Firestorm viewer.

     

    Sieppaa.PNG

     

  3. Sieppaa.PNG

     

    I wish that would be the explanation. But the uv layout is very consistent, the stretching is about zero and size difference is not even noticeable in render. And sure I have used checker grids for this. Also, the back side is "larger" measured as an area. So it is natural that the uv island is wider too when unwrapped.

    (ETA: Added following text and checker photo): Also, in the SL render the vertex normals both side of the seam are clearly pointing to different directions. The direction of the normals differ so much on seam area that it cannot be explained by minor uv-island size difference.

  4. I tried that too and it did not help, the value of 22 px was the largest I tested. Also the seam is independent of normal map background color. The maps I have tested are generated using Blender, XNormal and ZBrush. All of them produce the same effect.


    The irritating issue is that the normal map seam really breaks the normals - the vertex normals on each side of the seam are clearly pointing to different directions. Inworld SL the issue is much more noticable than in static images above. Technically it looks just like the verteces having two tangent info (from two different locations in uv-map) are not "averaged" using those two values. They pick the tangent info from one side only. When looking more close the normals stabilize again after going one polygon away from the seam line.

     

     

  5. I will give you here a practical example.

    - Mesh is low poly

    - normal map baked from hi-poly,

    - edge padding 8 px,

    - normal map type OpenGL (x+ y+ z+),

    - normal map file as 24 bit targa to avoid lossing of data. I made the normal map background black just to make it more visible up here in the forum.


    First uv layout render in SL:

    test2.png

    UV layout and normal map of the model above:

    test1.png

    It looks like the angle between uv edges (separated by this uv border) affects the normal map seam in render.

     

    Same model with different uv-layout. Note that normal maps are baked using this layout (not using the hack I described in earlier post)

    Snapshot_004.png

    In this render, the seam has disappeared totally.

     

    And the uv-layout is now so, that the uv-border edges are aligned to same direction as uv-axeses. And also aligned to the same angle compared to eachother:

    test3.png

     

    So..what is happening here and why?


  6. Their is some misinformation in this conclusion.

    UV Islands are not restricted to 90 degree angles in order to bake out a properly working Normal Map, if this where true Normal Maps would not have been widely accepted as they are now. 
    Some models are gonna have irregular UV Islands with no real sense of what is 90 degrees of any other angle for that matter.

    Baking a Normal Map as a "diffuse texture" to a different UV Layout is a messy hack that will never produce properly baked out Normal Maps. A Normal Map is unique to the UV Layout it was baked to, if you change your UV Layout you need to rebake you Normal Map.

    Normal Maps are suitable for any kind of model, especially low-poly models.

    That is true, there is some misinformation, because UV islands *should not be restricted to 90 angles*. However, in SL engine one cannot make Normal Maps work properly if the island borders are in some other angle than left-right or up-down....

    As an example: If you have a human body uv map where upper body is unwrapped naturally up-down direction (neck up, waistline down) and lower body is for some reason unwrapped left-right direction (toes right side of uvmap and waistline on the left side of map)-> result is a bad seam between upper body and lower body when rendered in SL.

    And this is the whole point. Why in other shaders the UV seams can be in any angle but not in SL shader engine.

    This baking one uv into another uv is of course a bad hack. But it was the only way I could get rid of most of the ugly seams. And you are right, normal maps are uv layout specific. The map has to be baked and used with same uv layout. Otherwise the tangent space is broken.

    I have been studying a lot about this UV island issue on other forums, and they admit that in some shaders there is issues (or bugs) that cause false rendering. But can this be interpreted as bug or as a feature in SL?

  7. I am actually answering the previous post myself. I found out interesting issues regarding uv-seams, normal maps and shader engine.

    Quote:

    "

    Tangent space normal maps use a special kind of vertex data called the tangent basis. This is similar to UV coordinates except it provides directionality across the surface, it forms a surface-relative coordinate system for the per-pixel normals stored in the normal map.

    Light rays are in world space, but the normals stored in the normal map are in tangent space. When a normal-mapped model is being rendered, the light rays must be converted from world space into tangent space, using the tangent basis to get there. At that point the incoming light rays are compared against the directions of the normals in the normal map, and this determines how much each pixel of the mesh is going to be lit. Alternatively, instead of converting the light rays some shaders will convert the normals in the normal map from tangent space into world space. Then those world-space normals are compared against the light rays, and the model is lit appropriately. The method depends on who wrote the shader, but the end result is the same.

    The UVs and the vertex normals on the low-res mesh directly influence the coloring of a tangent-space normal map when it is baked. Each tangent basis vertex is a combination of three things: the mesh vertex's normal (influenced by smoothing), the vertex's tangent (usually derived from the V texture coordinate), and the vertex's bitangent (derived in code, also called the binormal). These three vectors create an axis for each vertex, giving it a specific orientation in the tangent space. These axes are used to properly transform the incoming lighting from world space into tangent space, so your normal-mapped model will be lit correctly.

    When you look at a tangent-space normal map for a character, you typically see different colors along the UV seams. This is because the UV shells are often oriented at different angles on the mesh, a necessary evil when translating the 3D mesh into 2D textures. The body might be mapped with a vertical shell, and the arm mapped with a horizontal one. This requires the normals in the normal map to be twisted for the different orientations of those UV shells. The UVs are twisted, so the normals must be twisted in order to compensate. The tangent basis helps reorient (twist) the lighting as it comes into the surface's local space, so the lighting will then look uniform across the normal mapped mesh.

    When an artist tiles a tangent-space normal map across an arbitrary mesh, like a landscape, this tends to shade correctly because the mesh has a uniform direction in tangent space. If the mesh has discontinuous UV coordinates (UV seams), or the normal map has large directional gradients across it, the tangent space won't be uniform anymore so the surface will probably have shading seams."


    Conclution after several tests:

    To get baked normal map (at least baked by x-normal,blender or zbrush) work correctly across UV seams -> UV seams has to be aligned left-to-right and up-down, eg along the uv-axeses. This means about like tiling the uv-seams, as mentioned above in the last paragraph.

    This kind of aligning ruins the whole UV map of more organic model. The only workaround I found was to make a temporary UV map with all seams aligned to the axeses and baking normal map to those uv islands.

    Then I took the resulting normal map as a "diffuse texture" and baked it to the final uv-map. (In Blender you could think this as 'bake with bake mode textures', original normal map as texture, and coordinates UV mapped according to temporary UV)

    ETA: Afterwards I noticed the final uv-islands require some additional flipping. Seems to be they have to be 90 degree angle compared to original ones, and mirrored...:D so ..umh...looks like not a suitable for everyday thingies...:)

     

     

     

  8. Actually I made some more tests, and the results are even more confusing.... Let's mimic a model that represents smooth shaded organic object in SL. The hi poly is complex and low-poly is not a simple cylinder but more like..yeah..low-poly representation of original mesh. UV unwrap contains some small non-uniform sections. Some polygons are a bit too small, some a bit too large, and there are angles all around. That is probably the way complex organic UV maps are, almost perfect but still some little issues here and there, too small to be seen in final render engine tho. Here is a photo of hi-poly and low-poly in Blender:

    1.png

     

    As you can see there is a seam in LowPoly model. (Well of course, it is not well placed, in the middle of important geometry, but as an example here). Also the edge flow is not straight, there is some angles in LP edges. Would be just normal in real model too.


    Here is a nice uv layout with Normal map:

     

    4.png

    There is a noticable stretch in UV map. On that angle area the polygons on both side of the seam are too large. This kind of error in uvmap is not good, but smaller stretches are just okey in big organic model.



    The same uv map packed a bit different way, whitch is also okey when there is a lot of islands everywhere and you pack them to avoid empty areas in the final texture file.

    3.png

     

    But the result of these two uv-islands in SL is totally different. The nicely 90 degree angled uv islands look perfect. The rotated uv islands look horrible.

    6.png

     

    The weird thing is that according to my knowledge the uv island rotation should have no effect on tangent space UV map in the actual real-time shader. I tested this using XNormal 3d View, Blender GLSL shading, Maya...they all rendered this well. But SL does not.

     

    Example of Blender and XNormal viewport with the rotated uv island normal map applied. No seams, looks perfect.

    5.png

    44.PNG

     

    Has anyone got further knowledge about this?

     

  9. Canobu's idea actually works as a funky, very fun and quick solution :P

    Yeah, if I understood right you fix the seam area from both sides using neutral normal map color. About like blending neutral color gradually stronger when closing the border line.

    I tried to do some more research on this swizzle -y normal bake, and I think there really is no way to bake these maps correctly. There has to be made some manual adjustment as Canobu suggests. Problems might arise if there is strong normal mapped geometry across the uv seams....

  10. I have been fighting with this normal map issue for a long time. The problem is visible seam or discontinuity in UV island border. This issue is not visible when normal map is standard (+x +y +z) but when dealing with
    SL normal maps (+x -y +z, green channel flipped) this comes visible.

    I have been trying normal map bake (+x -y +z) in XNormal, ZBrush and Blender, all of those produce the same problem. Blender generates only standard normal maps but after flipping the green channel in Photoshop the seams come visible.

    To make normal map work correct in SL, the green channel has to be flipped. Otherwise lights from up or down will reflect wrong.

    [ ETA: "Just marked red some of my totally wrong opinions, SL uses x+ y+ z+ normal map. Do not follow my advice above:) ]

    The question: What is this all about and is there a way to bake correctly -y swizzled normal map for SL?

    The mesh is
    - smooth shaded low poly
    - normal map (+x, -y, +z) baked from smooth shaded high poly
    - uv map has no overlapping verteces
    - mesh has no double verteces or split edges
    - edge padding (bake margin in Blender terminology) is 6 pixels


    Some images make it more clear. This is a side view from a human shaped character upper leg:

     

    Normal Map viewed as diffuse texture:

    1.png

     

     Mesh in Blender viewport with normal map used as tangent spaced normal map (seam comes actually visible):

     

    2.PNG

     

    Normal Map itself, arrows point to UV border:

     

    3.PNG

     

    And the visible seam inworld SL, no diffuse texture, just white object with normal map applied to the material:

     

    4.PNG¨¨

     

     

    Am I the only one who has had this issue ;D ?

  11. I have been fighting with this normal map issue for a long time. The problem is visible seam or discontinuity in UV island border. This issue is not visible when normal map is standard (+x +y +z) but when dealing with
    SL normal maps (+x -y +z, green channel flipped) this comes visible.

    I have been trying normal map bake (+x -y +z) in XNormal, ZBrush and Blender, all of those produce the same problem. Blender generates only standard normal maps but after flipping the green channel in Photoshop the seams come visible.

    To make normal map work correct in SL, the green channel has to be flipped. Otherwise lights from up or down will reflect wrong.

    [ ETA: "Just marked red some of my totally wrong opinions, SL uses x+ y+ z+ normal map. Do not follow my advice above:) ]

    The question: What is this all about and is there a way to bake correctly -y swizzled normal map for SL?

    The mesh is
    - smooth shaded low poly
    - normal map (+x, -y, +z) baked from smooth shaded high poly
    - uv map has no overlapping verteces
    - mesh has no double verteces or split edges
    - edge padding (bake margin in Blender terminology) is 6 pixels


    Some images make it more clear. This is a side view from a human shaped character upper leg:

     

    Normal Map viewed as diffuse texture:

    1.png

     

     Mesh in Blender viewport with normal map used as tangent spaced normal map (seam comes actually visible):

     

    2.PNG

     

    Normal Map itself, arrows point to UV border:

     

    3.PNG

     

    And the visible seam inworld SL, no diffuse texture, just white object with normal map applied to the material:

     

    4.PNG¨¨

     

     

    Am I the only one who has had this issue ;D ?

  12. Marvellous Designer produces meshes that are really not suitable for SL directly. It is much too dense and triangulated mesh is really hard to handle in Avastar for example (Avastar is great! But dense tri-mesh is by it's nature hard to weight paint). Also, the MD mesh contains "bumpy" details generated by cloth simulation.

    I find it sad, that people think retopology as difficult, time-consuming and boring work. Personally I find retopology process interesting and even fun. The whole process is somewhat non-standard, but for example Blender has one great add-on to help re-topology. The name of this add-on is BSurfaces and it is nowadays included in Blender package. All you need to do is activate it from the add-on settings.


    A video about Blender retopo process in general level, including several options for retopo:


    ..And a good tutorial for BSurfaces retopology using Blender:

    http://cgcookie.com/blender/lessons/3-retopology-method-3-bsurfaces-add-on/


    One-hour retopology work will usually save huge amount of time and pain in weight painting, uv-unwrapping, texturing, LOD desing, Land Impact problems, and so on....



    • Like 2
  13. I think Antumbra is asking here how to generate a map that containts Ambient Occlution map, Shandow Map and Light Map composed together.

    Shadow map can be generated using "Shadow" in Bake Mode options, but it will not bake you the scene lights, only the shadows that are caused by lights. Non-shadow areas will be pure white.

    Instead, you might try to bake all these effects into one map using a Lambert Material with specular intensity set to zero and diffuse color set to 50 per cent gray (R 0.5, G 0.5, B 0.5). Environmental light could be 1.0 (to avoid totally black areas) and Ambient Occlution settings according to your needs. The baking itself should be made using bake mode "full render".


    The generated map can be then multiplied or overlayed in Gimp or Photoshop on top of the diffuse texture.

     



     

     

     


  14. so i just wanna say yes, i love the advanced lighting and i make my creations with it. But they look terrible in viewers without the good graphics cards. I am beginning to make 2 versions of my models, one for use with ALM and one for use without. Although i wonder if the users who dont use ALM even notice a difference. Certainly those who do will notice
    :)

     

    I love the new materials features too, those give so incredibly more possibilities for realism. And I have been thinking of two versions too. Maybe I should go that way :). Mixing things together just does not work for everything. And without any baked details the non-ALM view is horrible, true.

    One possibility would be to play more with specular map. Maybe gradually transfer specular color to black on those areas that are lit by baked specular in diffuse (texture)channel. Most irritating issue is strong baked light vs. specular effect :/. Well and sometimes also baked details vs. normal map effect. Anyway, this materials feature is great as a whole!

  15. Just read thru the previous terms and conditions of Frigidaire and understand what it means to put their logo on a commercial 3d model representing a kitchen appliance. I hope you finally understand. And I hope we close this conversation.

  16. Dear Pamela. You clearly do not have any idea about what Intellectual Property, protected trademarks and copyrighted materials are.

    The use of Frigidaire logo (whitch is visible in your La Galleria kitchen products) and Frigidaire product photos projected into your cube shaped objects in your products is striclty forbidden by Linden Lab. And also forbidden by Fridigaire brand itself, thru their protected trademark. More information can be found here:

    http://wiki.secondlife.com/wiki/Linden_Lab_Official:Intellectual_Property

    It is damned shame that some creators sell and earn money from their products, that clearly violate the very basic and even common sense IP regulations....

     

    It is also shame if users upload mesh content that violate the original creators rights. But the point is that people have to understand their rights to use/upload/share/deliver/reproduce/re-sell and so on of the object/texture they are uploading. After receiving the licence from the creator, the user has the right to upload the mesh inworld and sometimes even sell it. Sometimes the licence is received by paying a fee for the original creator, sometimes 3d-modelling community shares meshes for free. It all depends on the licence that you receive.

    This really is not very difficult to understand....

    And repeating my answer to your earlier comments: I design 3d content nearly 100 percent myself, there is some rare situations (as this buddha for example) when I use purchased or free-to-use-commercially licenced models. You can check this by yourself inworld. I can have also a private conversation with you about this.

     

     

     

  17. Okey Pamela. But you obviously are trusting that Frigidaire (trademark of Electrolux corp) is willing to give you a right to use their products as base for your SL creations? Have you ever read the "Terms and Conditions" of Frigidaire web site. The Terms and conditions to use the high quality images you download from their web pages? and *commercially* re-use the Frigidaire protected trade mark as your products in SL ? You obviously really should find out what they say on that web page.

    If you have not read the web page, here is an extract :

    "Frigidaire authorizes you to view and download the information ("Materials") at this Web site ("Site") only for your personal, non-commercial use. This authorization is not a transfer of title in the Materials and copies of the Materials and is subject to the following restrictions: 1) you must retain, on all copies of the Materials downloaded, all copyright and other proprietary notices contained in the Materials; 2) you may not modify the Materials in any way or reproduce or publicly display, perform, or distribute or otherwise use them for any public or commercial purpose; and 3) you must not transfer the Materials to any other person unless you give them notice of, and they agree to accept, the obligations arising under these terms and conditions of use. You agree to abide by all additional restrictions displayed on the Site as it may be updated from time to time. This Site, including all Materials, is copyrighted and protected by worldwide copyright laws and treaty provisions. You agree to comply with all copyright laws worldwide in your use of this Site and to prevent any unauthorized copying of the Materials. Except as expressly provided herein, Frigidaire does not grant any express or implied right to you under any patents, trademarks, copyrights or trade secret information."

  18. I totally agree with Kwakkelde Kwak. Even some very popular and good reputation web sites carry copied creations. Maybe commons sense and some further google work reveals what is original and what is not...

    Anyway, I am personally very willing to pay for a good quality base model that someone has made and sells it to others. I feel it is supporting someone else in the community of 3dmodelling. If I pay X dollars for something and gain X+20 dollars over one year, I feel it is a fair deal for both.

  19. I think this conversation between me and Pamela is now extremely off-topic. And yes, welcome to 21st century : ). It is nice that today creative people often share their creations to be used by others. There is a lot of ways to do that. Maybe you should google word "3d repository" and go deeper into that word. Find out what it means and what kinds of licenses there are out there. And also find out why people share things. Sometimes people sell their products to be used commercially and further developed by others. Sometimes they share things just for fun, and to be further developed by others - sometimes also commercially. Sometimes they deny the commercial use, witch is good too. Personally, I create nearly all objects myself, but there are situations when it does not make sense. As an example, this buddha is a part of Second Life replica for old Japanese temple. The buddha is one detail in the whole temple, to be exact it takes 0,1% of the overall land impact of the temple... Yes, it is nice. I saved maybe even weeks of work by using this buddha as a base mesh and developed it further to be part of a bigger creation.


  20. Pamela Galli wrote:

    So do you have any indication that the person who made this model is okay with you making money from his work?

     

    Yes Pamela, I do have indication: Terms of Use, http://www.3dcadbrowser.com

     

    "Terms of Use (Version 1.12 of 26 November 2012) . .

    Use of downloaded materials All of the downloadable resources available in 3D CAD Browser catalog may be used free in your own or commercial projects. Downloaded resources may not be sold individually or provided for free to another parties."

    This particular model is "Uploaded by Reginald L Franklin at 9 November 2002 into Architecture - Sculpture / Statues 3D Models. "

     

  21. I decided to take a little project with Materials too. A long time ago I found very interesting looking 3D Buddha model in the internet (a free model, been there around for years I think). This original mesh was a decimated and triangulated about 62K tris, propably the very original has been even more dense, maybe. No textures nor materials were included.

    My mission was to turn this 62K tris mesh into SL object of reasonable land impact. The result of this little project was a mesh object with 3748 Quads. That equals about standard SL avatar, whitch is about 7700 tris.

    Not a bad result I think, and I had "free polygons" to design a lotus chair and some sort of a lotus back leaf for the chair. The buddha with his body, head and hat is about 3000 quads.

    Snapshot of the final result:

    Snapshot_002.JPG

    The issue that has been bothering me from the dawn of SL materials is: There is a huge amount of users that do not keep the "advanced lightning model" setting on. How to make my creations to look good for both materials and non-materials viewers at the same time....and I am still not sure what is the absolutely correct workflow for that when dealing with SL.

    Zoomed snapshot, NO Advanced Light....

    Snapshot_006.jpg

    And Advanced Light set as ON:

    Snapshot_005.jpg

    My workflow for this Buddha was as follows:

    1. Re-Topology process in Zbrush. After that, the base mesh is about 3000 quads.
    2. Uv-unwrap this base mesh in Blender (I prefer the UV tools of Blender more than ZBrush ones)
    3. Bring the base mesh back to ZBrush.
    4. Subdividing and reprojecting the basemesh against the original triangulated verion. Now I have my own hi-poly mesh with UV map. The Hi-poly version is now over 3 million polys.
    5. Sculpting some details and smoothing the surface. The original mesh was a bit rough at some points.
    6. Generating Normal maps using XNormal. Source files are the lo and hi poly version from ZB
    7. In ZB, generating 32 Bit Displacement map to be used in Maya when baking textures. I prefer large disp map instead of brining 3 million poly model into Blender or Maya, due to performance.
    8. Manually designing specular maps in Photoshop. All sorts of a little tweaks :)
    9. LOD design in Blender

    Okey, the baking textures is the way I try to solve this material vs. non-material user experience.
    The baked texture contains:
    - light(map) baked,
    - ambient occlution,
    - very strong specular and reflection effects of golden material

    Of course, baking could be done by compositing cavity,curvature,occlution,lightning,specular,diffuse and so on maps in Photoshop.

    But the irritating problem is, that I have baked into texture a lot of information that should be achieved via SL diffuse and specular shaders. That is, using diffuse, specular and normal maps.

    Also, I can not use SL specular map effects to full extend. With both baked and SL shader effects the result would be too strong, washed out, burned or whatever.

    The result looks quite okey inworld in SL, and specular + normals look good when moving camera around the object. But...if you are obsessed with small details...zooming into some parts will show you the overlapping effects of baked textures and spec/norm maps. I hate those *smiles*

    Anyway, I do not know why I wrote this. Maybe just to ask: Has anyone else been fighting with non-material vs. material viewer features combined together?

×
×
  • Create New...