CG Lab: Unterschied zwischen den Versionen
Aus exmediawiki
Nathan (Diskussion | Beiträge) |
Nathan (Diskussion | Beiträge) |
||
(18 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
− | === ''' | + | === '''Welcome''' === |
<br> | <br> | ||
Zeile 17: | Zeile 17: | ||
− | ''In general, we don't believe that one software/company/tool is always the best or always right, we just try to give you the best way to work with what we have and know. We are always open to new suggestions and are constantly comparing and testing different tools. If you are in doubt, you can always try the free tool [https://www.blender.org/download/ blender] for almost any cg related task and/or try software in our lab first. We strongly recommend that you only buy software that you are really sure you need and want to use.'' | + | <small>''In general, we don't believe that one software/company/tool is always the best or always right, we just try to give you the best way to work with what we have and know. We are always open to new suggestions and are constantly comparing and testing different tools. If you are in doubt, you can always try the free tool [https://www.blender.org/download/ blender] for almost any cg related task and/or try software in our lab first. We strongly recommend that you only buy software that you are really sure you need and want to use.''</small> |
<br> | <br> | ||
Zeile 23: | Zeile 23: | ||
<br> | <br> | ||
− | === '''CG | + | === '''CG Terminology''' === |
There is a certain language used in computer graphics, 3D arts and sciences. We will try to collect here some of the main terms that you will come across in online resources and in everyday use. Some are simple, some are more advanced. To create digital art, you will usually get by without fully understanding all of these concepts. However, we recommend that you look them up. In general it will help you to at least remember that you have heard of something when you come across it. If you are planning to make 3D your main artistic tool, we think you need to have a good understanding of them. | There is a certain language used in computer graphics, 3D arts and sciences. We will try to collect here some of the main terms that you will come across in online resources and in everyday use. Some are simple, some are more advanced. To create digital art, you will usually get by without fully understanding all of these concepts. However, we recommend that you look them up. In general it will help you to at least remember that you have heard of something when you come across it. If you are planning to make 3D your main artistic tool, we think you need to have a good understanding of them. | ||
Zeile 40: | Zeile 40: | ||
<br><br> | <br><br> | ||
− | + | ====Basic (3d) terminology:==== | |
**'''Attributes''' | **'''Attributes''' | ||
Zeile 49: | Zeile 49: | ||
**'''Voxels''': [https://www.youtube.com/watch?v=dSDuR-45W6Y/ What are Voxels? - Speedy Houdini] | **'''Voxels''': [https://www.youtube.com/watch?v=dSDuR-45W6Y/ What are Voxels? - Speedy Houdini] | ||
**'''Normals''': [https://www.youtube.com/watch?v=hkTjreiookM&t=1s/ 3D Basics - What are Normals?] | **'''Normals''': [https://www.youtube.com/watch?v=hkTjreiookM&t=1s/ 3D Basics - What are Normals?] | ||
− | **'''Watertight''' | + | **'''Watertight:''' A term used to describe topological properties of a 3D mesh or surface. A mesh is considered watertight if it has no gaps, holes, or missing triangles (faces). In other words, it is a continuous, unbroken surface that would prevent water from seeping through. This property is essential for 3D printing, computer-aided design (CAD), and other applications where a solid, enclosed volume is required. |
− | + | **'''Manifold:''' A mesh is considered manifold if it satisfies two conditions: | |
− | **'''Manifold''' | + | *** 1. Each edge is incident to only one or two faces. This ensures that edges are properly connected to the surrounding faces. |
− | + | *** 2. The faces incident to a vertex form a closed or open fan. This means that the faces attached to a vertex can be continuously deformed into a disk (closed fan) or a cone (open fan) without tearing or stretching the mesh. | |
− | |||
− | |||
<br><br> | <br><br> | ||
− | + | ====More advanced (code based) terminology==== | |
**'''Integer''' | **'''Integer''' | ||
***An integer is a whole number, either positive, negative, or zero, without a fractional part, and can be represented as …, -3, -2, -1, 0, 1, 2, 3, … in the set of integers (Z). | ***An integer is a whole number, either positive, negative, or zero, without a fractional part, and can be represented as …, -3, -2, -1, 0, 1, 2, 3, … in the set of integers (Z). | ||
Zeile 75: | Zeile 73: | ||
<br> | <br> | ||
<br> | <br> | ||
− | ==== | + | ==== Material/Shader/Texture Terminology==== |
*'''Core Material Properties''' | *'''Core Material Properties''' | ||
**Base Color: The fundamental color of the material, often a simple texture or flat color. | **Base Color: The fundamental color of the material, often a simple texture or flat color. | ||
Zeile 116: | Zeile 114: | ||
<br> | <br> | ||
− | + | === '''3D Scanning''' === | |
− | |||
− | |||
− | |||
− | === '''3D | ||
*Laser | *Laser | ||
**Leica 360 | **Leica 360 | ||
Zeile 144: | Zeile 138: | ||
<br> | <br> | ||
− | === '''CG | + | === '''CG Lab Software'''=== |
− | |||
<br> | <br> | ||
==== '''Houdini''' ==== | ==== '''Houdini''' ==== | ||
Zeile 159: | Zeile 152: | ||
* '''User Interface (UI) Tips''' | * '''User Interface (UI) Tips''' | ||
− | ** Follow this link for great tips: [https://tokeru.com/cgwiki/HoudiniUserInterfaceTips.html | + | ** Follow this link for great tips: [https://tokeru.com/cgwiki/HoudiniUserInterfaceTips.html UI Tips from CGWIKI] |
* '''Houdini Quick Start:''' | * '''Houdini Quick Start:''' | ||
Zeile 266: | Zeile 259: | ||
===== '''Blender Pipeline''' ===== | ===== '''Blender Pipeline''' ===== | ||
Daniel Bystedt did an amazing talk on a small studio or one person pipeline for working in Blender in 2019. Of course blender has changed alot since that but we believe you should still watch and learn from his approach how to deal with data in blender. | Daniel Bystedt did an amazing talk on a small studio or one person pipeline for working in Blender in 2019. Of course blender has changed alot since that but we believe you should still watch and learn from his approach how to deal with data in blender. | ||
− | The video of this 30 min presentation is this: [https://www.youtube.com/watch?v=Nuoe9h9jQxA/ Creating blender demos glowing tigers and tortured creatures] | + | The video of this 30 min presentation is this: |
+ | * [https://www.youtube.com/watch?v=Nuoe9h9jQxA/ Creating blender demos glowing tigers and tortured creatures] | ||
===== '''Modelling''' ===== | ===== '''Modelling''' ===== | ||
Zeile 282: | Zeile 276: | ||
==== '''Unreal Engine''' ==== | ==== '''Unreal Engine''' ==== | ||
− | + | Very realistic looking (outdoor) light and material rendering engine for real-time and very fast rendering. Usually used with imported geometry from other programs (Blender, Houdini etc.), but has the potential to create worlds, animations and simulations inside. | |
− | * Shuree has prepared a lot of information for you at the [[Unreal Club|Engine Club site]]. Check it out! | + | * '''Shuree has prepared a lot of information for you at the [[Unreal Club|Engine Club site]]. Check it out!''' |
+ | ** [https://exmediawiki.khm.de/index.php/Documentation_for_complete_beginners Documentation For Complete Beginners] | ||
+ | ====='''Version Control'''===== | ||
+ | *[https://www.anchorpoint.app/ Anchorpoint App] | ||
+ | |||
+ | === '''CG/3D Production Pipeline And File Formats''' === | ||
+ | ==== USD (Universal Scene Description)==== | ||
+ | |||
+ | Pixar USD is an open-source framework and file format that enables non-destructive collaboration and data exchange between multiple 3D applications and departments, allowing artists to work together on complex scenes and projects without losing data or compromising their work. | ||
+ | |||
+ | *[https://openusd.org/release/intro.html Introduction to USD] | ||
+ | *[https://openusd.org/release/glossary.html USD Terminology] | ||
+ | |||
+ | * Video presentation on the current state of USD for small teams/freelancers as a pipeline tool: | ||
+ | **[https://www.youtube.com/watch?v=bwkCfp6G-F8/ USD and Solaris in a Real-time Pipeline for Indie Studios and Freelancers| Paul Booth] | ||
+ | * Long presentation on a bigger production and their experience with USD | ||
+ | ** [https://www.youtube.com/watch?v=L9pMvbET7YU LOPs of love from the USD pipeline at Rebellion] |
Aktuelle Version vom 21. November 2024, 18:01 Uhr
Inhaltsverzeichnis
Welcome
!!! At the moment the CG Lab wiki page is under heavy development and things will change quite often. Over time this will become more stable. !!!
Hi there,
This is where we will collect resources for software, workflows and equipment in the CG Lab (formerly VFX Lab). Inspired by Matt Estela's
one and only CG Wiki but more specific KHM media artists oriented.
If something comes along, we will add it here. Don't expect it to be complete in the near future. It's meant to give you quick access to information that people keep asking us for or that seems important to us. If you are missing any information that you would like to see added here, please do not hesitate to contact us via our KHM mail. If you feel you need more information or advice, you can also make an appointment with us or with one of us individually.
contact shuree
In general, we don't believe that one software/company/tool is always the best or always right, we just try to give you the best way to work with what we have and know. We are always open to new suggestions and are constantly comparing and testing different tools. If you are in doubt, you can always try the free tool blender for almost any cg related task and/or try software in our lab first. We strongly recommend that you only buy software that you are really sure you need and want to use.
CG Terminology
There is a certain language used in computer graphics, 3D arts and sciences. We will try to collect here some of the main terms that you will come across in online resources and in everyday use. Some are simple, some are more advanced. To create digital art, you will usually get by without fully understanding all of these concepts. However, we recommend that you look them up. In general it will help you to at least remember that you have heard of something when you come across it. If you are planning to make 3D your main artistic tool, we think you need to have a good understanding of them.
- SFX
- Effects that are being done and work on a location or film set
- VFX
- Effects post filming and editing
- CGI
- Fully computer generated images
You can mix sfx,vfx and cgi and it's being done alot and it's often hard to tell what's what (“invisible” effects).
Basic (3d) terminology:
- Vectors: What are Vectors? - Speedy Houdini
- Voxels: What are Voxels? - Speedy Houdini
- Normals: 3D Basics - What are Normals?
- Watertight: A term used to describe topological properties of a 3D mesh or surface. A mesh is considered watertight if it has no gaps, holes, or missing triangles (faces). In other words, it is a continuous, unbroken surface that would prevent water from seeping through. This property is essential for 3D printing, computer-aided design (CAD), and other applications where a solid, enclosed volume is required.
- Manifold: A mesh is considered manifold if it satisfies two conditions:
- 1. Each edge is incident to only one or two faces. This ensures that edges are properly connected to the surrounding faces.
- 2. The faces incident to a vertex form a closed or open fan. This means that the faces attached to a vertex can be continuously deformed into a disk (closed fan) or a cone (open fan) without tearing or stretching the mesh.
More advanced (code based) terminology
- Integer
- An integer is a whole number, either positive, negative, or zero, without a fractional part, and can be represented as …, -3, -2, -1, 0, 1, 2, 3, … in the set of integers (Z).
- Float
- Float in coding refers to a fundamental data type used to represent numeric values with decimal points, allowing for the storage and manipulation of fractional numbers, such as 1.23, 87.425, or 9039454.2, in programming languages like C, C++, C#, and others.
- In 3D graphics, floats are often used to store coordinates, vectors, and other numerical values with decimal precision, enabling accurate calculations and transformations of 3D objects.
- String
- In coding, a string is a sequence of characters, such as letters, digits, or symbols, stored as a single data type, often used to represent human-readable text, and can be implemented as a fixed-length array or a dynamic buffer with varying lengths, depending on the programming language and its libraries.
- In 3D, a string can refer to a sequence of connected vertices or control points that define a curve or surface, used to model complex shapes and geometries in computer-aided design (CAD) systems, computer-generated imagery (CGI), and 3D modeling software.
- Dot Product
- In coding, the dot product (also known as scalar product) is a mathematical operation that computes the sum of the products of corresponding elements (components) of two vectors, resulting in a scalar value representing the magnitude and direction of their alignment.
- Essential TD Skills: Designing & Implementing Algorithms starting from 03:30
- Vector Normalization
- Scaling a vector to have a magnitude of 1, while preserving its direction. Normalizing vectors is essential for consistent lighting and shading calculations. It ensures that vectors used in calculations, such as dot products and cross products, have a standardized length, allowing for accurate and predictable results.
- Integer
Material/Shader/Texture Terminology
- Core Material Properties
- Base Color: The fundamental color of the material, often a simple texture or flat color.
- Albedo: Similar to base color but excludes shadow and lighting data for physically accurate rendering.
- Reflectivity and Surface Interaction
- Metalness (Metallic): Defines whether a surface behaves like metal (high reflectivity and color-tinted reflections) or a non-metal (dielectric).
- Specular: Controls the intensity and sharpness of reflections for non-metal materials.
- Roughness: Defines how smooth or rough a surface is, affecting how sharp or diffuse reflections appear.
- Sheen: Adds a soft, fabric-like glow to the edges of a material, often used for materials like velvet or satin.
- Glossiness: Often the inverse of roughness, controlling the clarity of reflections.
- Anisotropy: Controls the directional stretching of reflections, commonly seen in materials like brushed metal, hair, or textiles.
- BRDF (Bidirectional Reflectance Distribution Function): Describes how light reflects off a surface based on angles of incidence and reflection.
- Lighting and Special Effects
- Emission: Makes the material emit light, creating glowing effects independent of scene lighting.
- Opacity: Controls the visibility of an object; lower values make it transparent.
- Transparency: A broader term for allowing light to pass through a surface, often combined with refraction effects.
- Transmission: Specifies how much light passes through a material, commonly used for glass or liquids.
- Refraction: Simulates light bending as it passes through transparent objects.
- IOR (Index of Refraction): Determines the degree of light bending for transparent materials (e.g., glass, water, diamonds).
- Surface Detail
- Normal Map: Adds fine surface details (like bumps or grooves) by altering surface normals without changing geometry.
- Bump Map: A grayscale texture for simulating surface details by modifying the apparent height of surface features.
- Height Map (Displacement Map): Represents elevation data to physically modify the geometry of a surface for greater realism.
- Ambient Occlusion (AO): Simulates soft shadows in crevices and corners where light is occluded.
- Texture and Mapping Techniques
- UV Mapping: A method of projecting a 2D texture onto a 3D object by unwrapping its geometry.
- Tiling: Repeating a texture across a surface for consistent coverage.
- Projection Mapping: Applying textures based on a 3D projection (e.g., spherical, planar).
- Advanced Material Concepts
- PBR (Physically Based Rendering): A shading workflow for creating realistic materials by simulating how light interacts with surfaces in the real world.
- Subsurface Scattering (SSS): Simulates light penetration and scattering beneath the surface, used for materials like skin, wax, and marble.
- Environment Map: A 360° image that simulates lighting and reflections from an environment.
3D Scanning
- Laser
- Leica 360
- Iphone/Ipad
- Photogrammetry
- Taking Pictures
- Post process
- Reality Capture
- A software (among other software that can do the same) that can turn images and videos it uses the frames as images into 3D models by calculating different perspectives. Also possible to mix with laser scanned data and improve your models measurements or the other way around, improve your laser scans texture by adding some higher res images.
- Neural radiance fields : NeRFs
- Getting Started with NVIDIA Instant NeRFs NVIDIA Technical Blog
- Nerfstudio (use on linux if you can)
- Apps
- Scaniverse
- RealityScan
CG Lab Software
Houdini
Behaves usually as you expect it to. Our current tool of choice. Mainly because of reliability and power.
After using its preset nodes/tools and feeling comfortable with the style of working, it is possible to create your custom tools or get more into coding/TD (technical director) work style.
Working in houdini will teach you fundamental skills for any 3d/cg work or tool. The educational version, with no technical restrictions for non-commercial work, is available in the CG lab and on the entire KHM intranet.
The apprentice version can be installed on your personal computers with all functions except rendering and exporting. You can render/edit your projects on lab computers and within the KHM intranet.
- User Interface (UI) Tips
- Follow this link for great tips: UI Tips from CGWIKI
- Houdini Quick Start:
- Follow this amazing Entagma series of tutorials if you want to learn the basics of Houdini quickly and well. It is from 2020, but still very helpful:
Common Attributes Cheat Sheet
stole this overview from nine between's video on yt: "What are Attributes? - Speedy Houdini" min 1.32
- @P - position
- @Cd - color
- @N - normal direction
- @pscale - uniform scale
- @scale - scale vector
- @up - axis to align to Y
- @id - a unique identifier (could be a bundle of points/verts/prims etc. that you define)
- @name - an identifier
- @v - velocity
- @force - a force to apply
Geometry Network (Surface Operators/SOPs)
The geometry network environment is a visual programming system where you can create and manipulate 3D geometry using a network of nodes, each representing a specific operation or function. These nodes, such as Geometry, Curve, and Point, are connected to form a flowchart-like structure, allowing you to define complex geometry transformations, attributions, and relationships between different parts of the model. The network can be thought of as a recipe, where each node contributes a specific step in the processing of the geometry, and the output of one node becomes the input for the next, enabling the creation of intricate and detailed 3D models. Within this environment, beginners can start by building simple shapes and primitives, such as cubes and spheres, and gradually move on to more complex tasks like extruding curves, scattering points, and manipulating attributes, all while utilizing Houdini’s visual feedback and debugging tools to refine your creations.
KineFX / Character FX
- Kinefx / Character FX video links:
Terrain
- Quick note on terrain in houdini:
- Height fields are volumes in houdini. That's awesome because volumes can be manipulated much faster than a regular mesh consisting of polygons. Therefore your model can be very big and complex while not costing so much until you turn it into a mesh. So, while working on a terrain, before exporting it into a mesh, you will be able to use all logic that applies to any volume modeling technique (VDB SDF etc.).
Copernicus/COPs/Materials
!!! Houdini 20.5 ships with Copernicus as BETA. There may be some problems, especially on Macbooks, where the viewport does not update. Be aware of this! You can try restarting Houdini and/or going to Labs/Refresh Viewport. !!!
The Copernicus environment, also known as COP, is a 2D and 3D GPU image processing framework that enables real-time image manipulation within a 3D space. This framework consists of COP nodes, which provide a unique node body with a preview thumbnail, and can be wired together to control the flow of layer and geometry data. COP nodes fully interoperate with Surface Operators (SOPs), allowing seamless integration between 2D and 3D workflows, and can export results as images or volumes. The default image space ranges from -1 to 1, preserving the pixel aspect ratio, and texture space ranges from 0 to 1 across the data window and buffer space, useful for mapping textures. As of Houdini 20.5, Copernicus nodes are recommended instead of Compositing nodes, with the Compositing network now designated as COP Network - Old.
- How To Create Organic Textures / Video Tutorial Sidefx
- How To Create Tile Based Textures / Video Tutorial Sidefx
Solaris Environment
Solaris is an Environment for look development, layout, and lighting tools that utilizes Universal Scene Description (USD) at its core, allowing you to create complex scenes comprising multiple assets within a single graph. This environment enables you to efficiently manage and organize assets, variants, and physical editing, streamlining the workflow for tasks such as setting up lighting, cameras, and materials. Solaris integrates seamlessly with Houdini’s existing tools and nodes, providing a unified platform for you to work on scene assembly, layout, and lighting, while also supporting collaboration and data exchange with other software applications. As a beginner, you can leverage Solaris in Houdini to create and manipulate scenes, manage assets, and set up lighting and cameras, all within a cohesive environment.
VOPs
- Node based visual coding system. As fast and powerful as VEX but no actual coding needed.
- Same performance as VEX. If you are not a person familiar with code we always recommend learning VOP’s before VEX!
VEX
- Coding language inside Houdini. Very powerful because it is fast and most of the time cheap on computing power. TIPP: Not that suitable for Noise (VOPs are just more intuitive way for using that)
- Attributes cheat sheet:
- VEX video links:
Plugins
Machine Learning
Houdini provides a platform for machine learning (ML) that supports synthetic data generation, preprocessing, training models, exporting trained models, and deploying trained models.
- ML Deformer Demo File. Download and try out here
- ML Terrain Demo File. Download and try out here
- ONNX Inference geometry node
- Machine Learning Operators Plugin (scroll down to: Plugins/MLOPs)
More Houdini online resources
Blender
Very powerful DCC and there is a ton of resources available for online learning. Some parts of Blender may be outdated/buggy and there is alot of development going on and versions released. That is really cool for getting new features fast. Just have in mind for stability. But usually its possible to open very old projects in the newest version!
Blender comes now with procedural modeling: Geometry Nodes. It is a great way to understand the basics and node based/non-destructive working style.
No licensing required for Blender. Yei! Lots of free and paid plugin options (be careful, can be a rabbit hole you might not want/need to go down to complete your task/project).
Additionally, blender includes great compositing tools (especially camera tracking results can be impressive).
Amazing 2D/3D Animation Tool Called Grease Pencil!
- Blender Gotchas
- Blender is awesome for sure, in some cases some things might not always behave as you would expect, so here we want to collect some common settings etc. that might get you into trouble.
- Preferences Cycles Render Device:
- It can happen, that blender defaults to "None" in the Preferences/System/Cycles Render Device. If you would like a GPU to be used you might want to change this to "CUDA" or "Optix" for example. Only if this is set, rendering will be done by the GPU.
- Preferences Cycles Render Device:
- Blender is awesome for sure, in some cases some things might not always behave as you would expect, so here we want to collect some common settings etc. that might get you into trouble.
Blender Pipeline
Daniel Bystedt did an amazing talk on a small studio or one person pipeline for working in Blender in 2019. Of course blender has changed alot since that but we believe you should still watch and learn from his approach how to deal with data in blender. The video of this 30 min presentation is this:
Modelling
- Sculpting
- Hard Surface
- Geometry nodes
Rendering
- Cycles
- Very powerful GPU/CPU Physical render engine. You will probably not need more for 99% of projects if you are looking for “photorealistic” light bouncing aesthetics.
- Eevee
- “Realtime” render engine inside blender
- Great lookdev tool (though with most decent machines you can use cycles with denoise and low samples very well already for that and get better previs)
- Similar to game engine texture and light calculations (similar pros and cons).
Unreal Engine
Very realistic looking (outdoor) light and material rendering engine for real-time and very fast rendering. Usually used with imported geometry from other programs (Blender, Houdini etc.), but has the potential to create worlds, animations and simulations inside.
- Shuree has prepared a lot of information for you at the Engine Club site. Check it out!
Version Control
CG/3D Production Pipeline And File Formats
USD (Universal Scene Description)
Pixar USD is an open-source framework and file format that enables non-destructive collaboration and data exchange between multiple 3D applications and departments, allowing artists to work together on complex scenes and projects without losing data or compromising their work.
- Video presentation on the current state of USD for small teams/freelancers as a pipeline tool:
- Long presentation on a bigger production and their experience with USD