The modelling quality discussion thread

The place to discuss creating, porting and modifying Celestia's source code.
Topic author
rthorvald
Posts: 1223
Joined: 20.10.2003
With us: 21 years 1 month
Location: Norway

The modelling quality discussion thread

Post #1by rthorvald » 11.08.2005, 17:37

maxim wrote:
rthorvald wrote:If anyone is interested in building lower res, more userfriendly versions of my stuff, just ask...
That's not so easy. Main culprit are the models.
Not always, but in many cases yes. However, many models does not *need* to be all that detailed; for example, my Gibraltar model could be reduced by 50% or more just by deleting the interior - which isn??t neccecary anyway, it was just added for fun. Of course such drastic editing aren??t practical for the end user... But reducing texture quality, removing/substituting the models defined in the SSC and so on is trivial.

maxim wrote:Yes, but to get the polycount really low without loosing the vison (or allow other people to do so) the design approach should be different - i.e. by not modelling every part to death but use texturizing on simplyfied outlines so one could choose between low poly - high textures or high poly - low textures.
You are completely right, of course. What you suggest is the optimal way to design; it is limited by the talent and expertise of the designer, though... As for myself, i??m not really a 3D modeller either; i am still at the low end of the learning curve, and working the way you suggest is one important aim.


maxim wrote:Following argument above -> I'm not a modeller, so I wouldn't know how to really simplify the models and substitute that by indroducing textured surfaces instead
Well, it boils down to testing, cutting, testing, imagination and patience; i??m afraid i don??t believe there are shortcuts there...


maxim wrote:I would be very willing to discuss and initiate a production process that automates the creation and deployment of ready-to-use low-end addons out of a 'master addon'
I??m not sure i understand what you propose here, but a brainstorming on how to build more efficiently and open-ended would be very interesting...


maxim wrote:The tricks would be a revision of Celestias code
One HUGE revision i would love to see is Virtual Virtual Textures!
(I want to be able to define ONE spesific tile to repeat X number of times in X directions on XY coordinates before the next tile is read in and applied by the program). And if something similar to VTs could be done with 3D building blocks, it would go a long way (build one cmod rock, and attach a definition or script for how it should be repeated)

maxim wrote:I know that some are arguing that they prefer detailed models over textured ones. But wouldn't it be nice if modelling was planned in a way, that some automation tools could be applied which strongly simplify the models and create textures instead to visualize the missing parts?

Something like that is beyond anything we could easily make... Better to focus on tricks that can be used in the software and processes we are using today.

-rthorvald

Avatar
Cham M
Posts: 4324
Joined: 14.01.2004
Age: 60
With us: 20 years 10 months
Location: Montreal

Post #2by Cham » 11.08.2005, 18:36

Can I jump into the wagon too ? :-)

3D modeling is a real art. ElChristou proved it.

Like many others here, I'm still at the lower end of modeling and I'm trying to improve. My main problem are the polygons. I tend to put too much polys because I hate visible triangles, like I hate to see any pixels in a texture. Textures designing is another huge part of the art.

It's very hard to fiind the perfect equilibrium between model resolution and textures.
"Well! I've often seen a cat without a grin", thought Alice; "but a grin without a cat! It's the most curious thing I ever saw in all my life!"

Topic author
rthorvald
Posts: 1223
Joined: 20.10.2003
With us: 21 years 1 month
Location: Norway

Post #3by rthorvald » 11.08.2005, 20:38

Cham wrote:I tend to put too much polys because I hate visible triangles, like I hate to see any pixels in a texture
So do i, but i do try to abstain from hitting the subdivision command too often ;-)

There??s also what Fridger remarked on re cloudmaps in another thread not long ago: it is easy to trick the eye to see more than what is there - in his case a 2k cloudmap: since you aren??t looking at the clouds but at the Earth, you don??t have to show all that detail to experience the clouds... This works with everything: you don??t need to see the what is happening in a horror movie if you can hear it...

So, we can design models using that principle: show *just enough* that everything else can be taken care of by our mind.

Cham wrote:It's very hard to fiind the perfect equilibrium between model resolution and textures.

Here is what i do: i define the "center" of my object, for example an asteroid. By center, i mean the logical "goto" place, where you are most likely to zoom in. And then i subdivide more the closer i get to that point. I do the same when texturing; i split the model up into smaller and smaller parts, and apply higher and higher resolution versions of the texture to these the closer i get to the center. That way, i end up with an illusion that works reasonably well.

Back to what Maxim wrote about, getting good at substituting polygons with texture maps: i haven??t really planned things that way before - but i can see huge possibilities for economizing there. Using billboards instead of 3-dimensional objects on things far away from the key location, for example...

-rthorvald

Avatar
Cham M
Posts: 4324
Joined: 14.01.2004
Age: 60
With us: 20 years 10 months
Location: Montreal

Post #4by Cham » 11.08.2005, 20:48

Well, the problem with Celestia is it let the user to move around ANY object, AS CLOSE as he/she wants. It's really scale independant ! When I visit some 3D model, I want to be able to watch it in all its details. The model must be perfect. If I see some triangle or some defect on the mesh (holes for example), I scream HORROR ! ;-) This may be enough to me to trash the model !

I don't like the idea to have a model which is nice only at some distance. There's nothing which prevents me to get closer. The best example on this is the Nasa shuttle. Before ElChristou came with its top first class model, I simply couldn't accept the old version we had. It was just too crude for my taste so I trashed it.
"Well! I've often seen a cat without a grin", thought Alice; "but a grin without a cat! It's the most curious thing I ever saw in all my life!"

Avatar
t00fri
Developer
Posts: 8772
Joined: 29.03.2002
Age: 22
With us: 22 years 7 months
Location: Hamburg, Germany

Post #5by t00fri » 11.08.2005, 20:48

rthorvald wrote:...
So, we can design models using that principle: show *just enough* that everything else can be taken care of by our mind.
...
-rthorvald


Runar,

I agree emphatically!

Bye Fridger

maxim
Posts: 1036
Joined: 13.11.2003
With us: 21 years
Location: N?rnberg, Germany

Post #6by maxim » 11.08.2005, 20:49

rthorvald wrote:
maxim wrote:I know that some are arguing that they prefer detailed models over textured ones. But wouldn't it be nice if modelling was planned in a way, that some automation tools could be applied which strongly simplify the models and create textures instead to visualize the missing parts?
Something like that is beyond anything we could easily make... Better to focus on tricks that can be used in the software and processes we are using today.
I disagree. This should be about basic standard to actual modelling software. I remember that when I studied, polygon tesselation was an actual topic. They started to model faces, and tesselation algorithms were able to reduce the number of polygons up to 80% without loosing any curvature softness in the rendered result. And I remember to have seen a modelling application once, where you could define a rectangular plane like a window and generate a snapshot, using a virtual camera - so you got a 2D texture of a 3D object.

rthorvald wrote:Well, it boils down to testing, cutting, testing, imagination and patience; i??m afraid i don??t believe there are shortcuts there...
That's exactly what I want to avoid. It makes not much sense that another has to do a lot of work, to make things easier for me.

rthorvald wrote:I??m not sure i understand what you propose here, but a brainstorming on how to build more efficiently and open-ended would be very interesting...
That's what I was proposing - some brainstorming, or maybe a workshop.

Perhaps it's possible to find some general design approach advices. And looking for a soft that does model simplification to an arbitrary level. Or planning models in (three?) groupings so you can generate lowres/medres/hires simply by adding or leaving a group - I'm only talking here. Don't know yet if that's a valuable idea.

cham wrote:It's very hard to fiind the perfect equilibrium between model resolution and textures.

Well, from what I watched so far there is a quite simple rule of thumb - detailed models and detailed textures strongly interfere - both at once tend to create confusing patterns. Or, other way round - if you want your textures detailed keep your models simple. If you have detailed models, be very carefull with your textures.

maxim

Avatar
Cham M
Posts: 4324
Joined: 14.01.2004
Age: 60
With us: 20 years 10 months
Location: Montreal

Post #7by Cham » 11.08.2005, 20:55

maxim wrote:Well, from what I watched so far there is a quite simple rule of thumb - detailed models and detailed textures strongly interfere - both at once tend to create confusing patterns. Or, other way round - if you want your textures detailed keep your models simple. If you have detailed models, be very carefull with your textures.

maxim


I totally agree with this. I also discovered that "effect" : strong detailed textures may interfer with the model itself. This is the "equilibrium" point I was talking about. We need to use simple and subtle textures on a very detailed mesh.

EDIT : If you are interested, here's a link to a model of a space station I just finished today. The mesh itself has a lot of polygons (but the frame rate is reasonable, I believe), and it's using only one simple and "subtle" texture. (5.2 MB download)

http://nho.ohn.free.fr/celestia/Cham/Cyl-Lab.zip
"Well! I've often seen a cat without a grin", thought Alice; "but a grin without a cat! It's the most curious thing I ever saw in all my life!"

maxim
Posts: 1036
Joined: 13.11.2003
With us: 21 years
Location: N?rnberg, Germany

Post #8by maxim » 11.08.2005, 21:11

Cham wrote:Well, the problem with Celestia is it let the user to move around ANY object, AS CLOSE as he/she wants. It's really scale independant ! When I visit some 3D model, I want to be able to watch it in all its details. The model must be perfect. If I see some triangle or some defect on the mesh (holes for example), I scream HORROR ! ;-) This may be enough to me to trash the model !
There is always room for improvement, and, in the end, model development is a always moving target. It hasn't to be perfect at once. Furthermore the code in Celestia is definitely not perfect. So you won't get perfect results here.

Cham wrote:I don't like the idea to have a model which is nice only at some distance. There's nothing which prevents me to get closer.

A reason to talk about LOD for models. I'm shure there is a standard for this. Having tiny models in the distance would make things so much easier.

maxim

jestr
Posts: 612
Joined: 14.09.2003
With us: 21 years 2 months
Location: Bridgwater,UK

Post #9by jestr » 11.08.2005, 22:24

If you could use all different sorts of textures (bump maps,noise ,opacity and illumination,displacement maps),this would cut the number of polys needed and texture work enormously.Jestr

Topic author
rthorvald
Posts: 1223
Joined: 20.10.2003
With us: 21 years 1 month
Location: Norway

Post #10by rthorvald » 11.08.2005, 22:52

Cham wrote:Well, the problem with Celestia is it let the user to move around ANY object, AS CLOSE as he/she wants. It's really scale independant !
Yes, but that does not mean it must be neccecary to show any irrelevant detail. It would have been nice, but the reality of our hardware does not allow it... So, instead of focusing on that, let??s create some ideas for improving the overall look, feel and performance of our models instead...


Cham wrote:When I visit some 3D model, I want to be able to watch it in all its details. The model must be perfect. If I see some triangle or some defect on the mesh (holes for example), I scream HORROR !
There??s a difference between imperfection and planned, designed simplicity. An impressionist painting isn??t neccecarily faulty just because it suggests more than showing stuff.

maxim wrote:I disagree. This should be about basic standard to actual modelling software
Oh, i didn??t mean good software isn??t interesting, just that i find it more useful to discuss our actual work environment and how to achieve good results with what we have.

maxim wrote:Perhaps it's possible to find some general design approach advices
Yes! That is exactly what i want.

maxim wrote:And looking for a soft that does model simplification to an arbitrary level. Or planning models in (three?) groupings so you can generate lowres/medres/hires
How hard would it be for the coders to implement the same principle for the models folder as for the textures folder? Is it a reasonable request? Because that would really do wonders...

maxim wrote:Having tiny models in the distance would make things so much easier

Right! This is a common technique in games.

- rthorvald
Last edited by rthorvald on 11.08.2005, 23:23, edited 1 time in total.

ElChristou
Developer
Posts: 3776
Joined: 04.02.2005
With us: 19 years 9 months

Post #11by ElChristou » 11.08.2005, 23:23

Hello guys,

Ouch this thread begun really fast... I'm a bit late...

I don't think the Maxim's idea of an automatic tool to create lowres version of a model can be done... Models are created in various differents way depending on the soft and the artist, so unfortunatly such a tool seems to me to be a dead end... (too complicated). Only the author can do several version in deferents res...

Once I tought about something like the definition of a level for meshes... level 1 the smaller mesh, level 2, 3, and level 4 the bigger mesh. Depending on distance some levels are not drawn... The problem is that's a lot of coding work + creation of tools... CHHRRIIISSSSSS where are you?????

I'am completly agree with Jestr, the Celestia engine need more attention.
Image

ElChristou
Developer
Posts: 3776
Joined: 04.02.2005
With us: 19 years 9 months

Post #12by ElChristou » 11.08.2005, 23:47

rthorvald wrote:...
Cham wrote:When I visit some 3D model, I want to be able to watch it in all its details. The model must be perfect. If I see some triangle or some defect on the mesh (holes for example), I scream HORROR !
There??s a difference between imperfection and planned, designed simplicity. An impressionist painting isn??t neccecarily faulty just because it suggests more than showing stuff....


I agree with the concept, but in practice it's not so easy. In 3D suggesting pass througt less poly and more texture work. The hard part is the choice of the form.
In the actual state of the possibilities we have, we don't really have the choice. No bumpmapping = more complex meshes. Less complex meshes = smooth forms not always adapted for the needs. Complex meshes = to heavy for average config... indeed just a question of balance.

We can talk about aesthetic, design, simplicity etc, to find a good way of representation, but as this depend a lot on people taste, and as we are not working on a specific project I think we cannot generalize this for futur very different works.
Image

Toti
Developer
Posts: 338
Joined: 10.02.2004
With us: 20 years 9 months

Post #13by Toti » 11.08.2005, 23:54

maxim wrote:
I disagree. This should be about basic standard to actual modelling software. I remember that when I studied, polygon tesselation was an actual topic. They started to model faces, and tesselation algorithms were able to reduce the number of polygons up to 80% without loosing any curvature softness in the rendered result. And I remember to have seen a modelling application once, where you could define a rectangular plane like a window and generate a snapshot, using a virtual camera - so you got a 2D texture of a 3D object.
There are several mesh simplification algorithms available. Basically you apply a decimator to your original mesh, and it builds a set of derived meshes, each with a lower polycount than the previous and then saves them to a file, FInally the renderer chooses which one to draw based on its distance from the observer. Some very specific simplification algorithms even work realtime, on the so called progressive meshes, where the level of detail changes continuously.

rthorvald wrote:
Back to what Maxim wrote about, getting good at substituting polygons with texture maps: i haven??t really planned things that way before - but i can see huge possibilities for economizing there. Using billboards instead of 3-dimensional objects on things far away from the key location, for example...

This is also a well known technique: you bake the rendering of a 3d mesh into both a color map and a bump map: the latter gives a 3d feel when the fake geometry is watched at non-extreme angles. Unfortunately Celestia doesn't render bump maps with non spherical meshes.

ElChristou
Developer
Posts: 3776
Joined: 04.02.2005
With us: 19 years 9 months

Post #14by ElChristou » 12.08.2005, 01:03

Toti wrote:There are several mesh simplification algorithms available. Basically you apply a decimator to your original mesh, and it builds a set of derived meshes, each with a lower polycount than the previous and then saves them to a file, FInally the renderer chooses which one to draw based on its distance from the observer. Some very specific simplification algorithms even work realtime, on the so called progressive meshes, where the level of detail changes continuously.


This kind of stuff works fine with all kind of meshes / grouped meshes without losing the integrity of the model?
Image

Toti
Developer
Posts: 338
Joined: 10.02.2004
With us: 20 years 9 months

Post #15by Toti » 12.08.2005, 02:11

Well, I am no expert, but keeping the mesh integrity is clearly a fundamental goal here: usually the progressive mesh is decimated by successive edge collapses. While the simplification takes place, the difference with the original geometry grows: this "error" is often related to a function of distance: i.e. the algorithm ensures that for any given distance the error never exceeds a certain value.
The result is that the mesh LOD continuously decreases as you get far from the object, but the degree of fidelity to the original is deterministic. With a proper adjustment of parameters you can couple the loss of detail with a function of the distance where this detail gets irrelevant (eg. the feature is too far away and thus is barely visible)

AFAIK the data structure for holding the geometry is specific for this type of meshes.
Last edited by Toti on 12.08.2005, 02:22, edited 1 time in total.

Avatar
Cham M
Posts: 4324
Joined: 14.01.2004
Age: 60
With us: 20 years 10 months
Location: Montreal

Post #16by Cham » 12.08.2005, 02:20

Guys, maybe we should start talking about specific tricks to do in the modeler, to make nice meshes ? And what about textures ?
"Well! I've often seen a cat without a grin", thought Alice; "but a grin without a cat! It's the most curious thing I ever saw in all my life!"

ElChristou
Developer
Posts: 3776
Joined: 04.02.2005
With us: 19 years 9 months

Post #17by ElChristou » 12.08.2005, 03:23

Cham wrote:Guys, maybe we should start talking about specific tricks to do in the modeler, to make nice meshes ? And what about textures ?


Modeling and texturing are two topics quite differents. I can do a MiniTut on my mode of optimizing by hand some meshes, but will need some time to do it... So if someone else want to begin...
Image

maxim
Posts: 1036
Joined: 13.11.2003
With us: 21 years
Location: N?rnberg, Germany

Post #18by maxim » 12.08.2005, 14:22

Toti wrote:There are several mesh simplification algorithms available. Basically you apply a decimator to your original mesh, and it builds a set of derived meshes, each with a lower polycount than the previous and then saves them to a file, FInally the renderer chooses which one to draw based on its distance from the observer. Some very specific simplification algorithms even work realtime, on the so called progressive meshes, where the level of detail changes continuously.
Thank you Toti for clarifying it. My memory became quite weak on that issue.

rthorvald wrote:Oh, i didn??t mean good software isn??t interesting, just that i find it more useful to discuss our actual work environment and how to achieve good results with what we have.
Well the actual work environment are the modellers and tools that you use. But that doesn't exclude doing research for other modellers and tools that may include additional usefull functionality. I mean for texture creation there is Photoshop, Gimp, ImageMagick, netpbm, ... and every tool has it's special advantage for a special purpose. I believe you can find a similar toolset for modeling tasks.

Cham wrote:Guys, maybe we should start talking about specific tricks to do in the modeler, to make nice meshes ?
Well automated tesselation and mesh optimization is one ...

Cham wrote:And what about textures ?

I can see two obvious basic usages for textures:

First the intrinsic texturing of a surface itself - like it is with paper, wood, cotton, rust and so on. This should be very straightforward when applied softly to big homogenous areas. As example I may point to headshield pictures from the bottom side of a shuttle:

http://www.spiegel.de/fotostrecke/0,5538,PB64-SUQ9MTA4MDgmbnI9Mg_3_3,00.html
http://www.spiegel.de/fotostrecke/0,5538,PB64-SUQ9MTA4MDgmbnI9Mw_3_3,00.html
http://www.spiegel.de/fotostrecke/0,5538,PB64-SUQ9MTA4MDgmbnI9NA_3_3,00.html
http://www.spiegel.de/fotostrecke/0,5538,PB64-SUQ9MTA4MDgmbnI9OA_3_3,00.html

please also note the grinding traces that obviously remained from former atmosphere reentrys. I believe that including those kind of details always increases reality impressions greatly.

Second basic usage is dirt - sometimes you won't believe what some soft but clever added dirt textures add to model impression. Have you noticed how dirty the shuttle looked like after landing - and how perfectly the dirt strips show the inclination during reentry:

http://www.spiegel.de/img/0,1020,503620,00.jpg (Sorry big pic seems unavaliable currently)

And it looked quite clean before, when it was in orbit (I don't want to know what that means for the pollution over the U.S.).

Here are some more general examples of dirt and oxidation:

http://www.photovault.com/Link/Industry/Construction/StreetsRoads/show.asp?tg=ICSVolume04/ICSV04P02_06
http://astronomy.swin.edu.au/~pbourke/texture/rust/
http://astronomy.swin.edu.au/~pbourke/texture/rust/index1.html
http://astronomy.swin.edu.au/~pbourke/texture/architecture/
http://astronomy.swin.edu.au/~pbourke/texture/architecture/index1.html

maxim

Avatar
Cham M
Posts: 4324
Joined: 14.01.2004
Age: 60
With us: 20 years 10 months
Location: Montreal

Post #19by Cham » 12.08.2005, 15:49

Within the CMOD conversion Tool, there are several options to select. Two of them are puzzling me :

- Weld vertices
- Optimize Triangle lists to strips.

What do they mean ? What are they doing exactly ?
"Well! I've often seen a cat without a grin", thought Alice; "but a grin without a cat! It's the most curious thing I ever saw in all my life!"

maxim
Posts: 1036
Joined: 13.11.2003
With us: 21 years
Location: N?rnberg, Germany

Post #20by maxim » 12.08.2005, 20:06

Here is some mesh optimization stuff you might like to take a glace onto - just for your curiosity:

http://lodbook.com/
http://www.cs.princeton.edu/~pshilane/class/AdvancedGraphics/meshSimplification/README.html
http://www.cg.tuwien.ac.at/studentwork/VisFoSe98/msh/
http://www.cs.umd.edu/gvil/projects/mesh_saliency.shtml
http://portal.acm.org/citation.cfm?id=566308

Don't dive into it too deep!

--------------------------------------------------------
Added later:

Seems that when working with Blender, the 'Decimator Tool' is the tool of choice:
http://download.blender.org/documentation/htmlI/ch07s08.html

---------------------------------------------------------

maxim


Return to “Development”