This commit is contained in:
Miloslav Ciz 2025-06-04 13:17:53 +02:00
parent cf7680ee94
commit 6f8eee7efa
18 changed files with 2005 additions and 1977 deletions

View file

@ -1,8 +1,8 @@
# 3D Model
In the world of [computers](computer.md) and [programming](programming.md) (above all in [computer graphics](graphics.md), but also in physics simulations, 3D printing etc.) 3D model is a representation of a [three dimensional](3d.md) object, for example of a [real life](irl.md) object such as a car, [tree](tree.md) or a [dog](dog.md), but also possibly something more abstract like a [fractal](fractal.md) or [function](function.md) plot surface. It is [model](model.md) in [mathematical](math.md) sense, i.e. an [approximation](approximation.md) or idealization of a shape that usually exists in real world but in its infinite complexity couldn't be represented in the computer. A very common thing we'll want to do with a 3D models is to draw it on the screen -- we call this [3D rendering](3d_rendering.md) and can achieve it using various rendering techniques and [algorithms](algorithm.md), but much more can be done with 3D models: for example they're used to perform simulations of the [real world](real_world.md) (e.g. [games](game.md), architectural calculations, car crash simulations, ...), because real world is, as we know, three dimensional. 3D models can be created in various ways too, e.g. manually with 3D modeling software (such as [Blender](blender.md)) by 3D [artists](art.md), by 3D scanning real world objects, automatically using [procedural generation](procgen.md), [artificial intelligence](ai.md) etc. It is even possible to create 3D models without a computer, just with [pen and paper](pen_and_paper.md).
In the world of [computers](computer.md) and [programming](programming.md) (above all in [computer graphics](graphics.md), but also in physics simulations, 3D printing etc.) 3D model is a representation of a [three dimensional](3d.md) object, for example of a [real life](irl.md) object such as a car, [tree](tree.md) or a [dog](dog.md), but also possibly something more abstract like a [fractal](fractal.md) or [function](function.md) plot surface. It is [model](model.md) in [mathematical](math.md) sense, i.e. an [approximation](approximation.md) or idealization of a shape that usually exists in real world but in its infinite complexity couldn't be represented in the computer. One of the first things we'll want to do with a 3D model is to draw it on the screen -- we call this [3D rendering](3d_rendering.md), and this may be achieved through various rendering techniques and [algorithms](algorithm.md), but 3D models serve many more purposes than graphics: for example they're a vital part of simulations of the [real world](real_world.md) physics (e.g. [games](game.md), architectural calculations, car crash simulations, ...), because real world is, as we know, three dimensional. 3D models can be created in various ways too, e.g. manually with 3D modeling software (such as [Blender](blender.md)) by 3D [artists](art.md), by 3D scanning real world objects, automatically using [procedural generation](procgen.md), [artificial intelligence](ai.md) etc. It is even possible to create 3D models without a computer, just with [pen and paper](pen_and_paper.md).
In the world of computer graphics there exist various famous 3D models that are often used for testing and presentation of new algorithms. These include for example the Utah Teapot (Bezier patch model, from 1976) and Stanford Bunny (scanned model, 69451 tris, 35947 verts).
In the world of computer graphics there exist various famous 3D models often used as "de facto standard" test subjects of new algorithm and/or for presentation thereof. These include for example the Utah Teapot (Bezier patch model, from 1976) and Stanford Bunny (scanned model, 69451 tris, 35947 verts).
There is a plethora of different 3D model types, the topic is very wide spanning and volume of literature is enormous when examining it in the scope of all possible areas that 3D models are used in because 3D models can really be used and represented in many ways, each of which is a tradeoff of various attributes that have different weights in different areas and industries. Everything is yet more complex by dealing with different methods of 3D rendering that favor different representations of 3D models -- the universal, **mainstream "game" 3D models** that most people are used to seeing are polygonal (basically made of triangles) boundary-representation (recording only surface, not volume) [textured](texture.md) (with "pictures" on their surface) 3D models, but be aware that many different ways of representation are possible and in common use by the industry, for example various volume representations, [voxel](voxel.md) models, [point clouds](point_cloud.md), [implicit surfaces](implicit_surface.md), [spline](spline.md) surfaces, [constructive solid geometry](csg.md), [wireframe](wireframe.md), hybrid etc. Models may also bear additional extra information and features, e.g. material, mass, bone rigs for animation, animation key frames, density information, collision shapes, [LODs](lod.md), even [scripts](scripting.md) and so on.