DCC Software and Graphics System

After working with DCC software for so many years, I saw the realtime solution went forward so much, also more and more low-level. As the game engine, 10 hears ago the game engine was such a challenge that now everything become so cheap, everybody could own it. But to the DCC software, with the birth of CG industry, actually most of them are very old/classical, but if we still don‘t learn anything new from the mistakes, and didn‘t figure out the boundry of the problems we have, that‘s not a bright future LOL.

Here are some popular realtime frameworks used by popular DCC software.

  • OpenSceneGraph Popular framework for visualization, used by many projects widely, such as Foundry Katana. It has a complete object model as a 3D rendering system also with a lot of utility libraries such as osgFX. But to the rendering, it just wraps the OpenGL API, the style is almost near to the traditional OpenGL.
  • PIXAR Hydra Still a traditional framework. As a critical part of the huge USD, it depends on the other components of USD. Whatever how complicated the architecture it is, it still doesn‘t solve the critical problem.
  • Autodesk VP2 (OGS One Graphics System) Used by Autodesk M&E products, the 3dsmax and Maya. The idea is to cover the all main stream API thought single API, now it supports both OpenGL and DX as the two most important backends.

Now let‘s think about the reality. What‘s the bottleneck of the DCC software on viewport ? Usually if we have the numerous different object, the interactive performance will be go down, or use too much memory to consolidate the world which means pack the static geometry data as much as possible to reduce the number of draw calls. Okay, now let‘s back to the reality and the real problem. Today, the latest graphics API become more and more low level, means the application could really find a proper way to maximal the performance.

If I design a rendering system for a DCC software, what will I do ? First of all, an abstract layer for the low level of API, both Vulkan and DX12. Because now, from the practical point of view, no big difference between Vulcan and DX12, but just the vendors considering their monopoly position for target platforms. So in future, there might be a new API or middleware to cover this requirement.

Based on 1), application supplies an asynchronized frameworks, there is an Gather/Reduce mechanism which will have a global statistical info about rendering entities. From the object model side, it sends the request to generate hashed rendering data, and tell the graphics system how many instance, and how many variants it might have. This logic works as the 1st level, then later at the 2nd level, the graphics system will aggressively reduce the draw call by packing the data.

The other features ? In my opinion, even not necessary if still based on realtime solution. Such as hardware shadowing in the viewport. Actually in the DCC software, most of the time, people even don‘t care about shadowing, but the draw performance for the layout. And also, realtime rendering, now is still less flexible than offline rendering, because in a nutshell, "realtime rendering" equivalents to "pre-rendering".

After so many years, people had invented so many useless craps, from the AMD Ashli, tried to translate RenderMan shader into realtime shader directly, or later the Autodesk ShaderFX, another unfinished crap, even the main developer just left. People always search a way to clone the offline rendering features into the viewport.

Actually today, with high performance Path Tracing renderer, if turn off the AA, the software rendering performance is totally acceptable, and much more reliable than the realtime rendering generated image.

Revise the fundamental concept.

  • To the realtime rendering, the "renderer" equals to "rendering logic", executor is the GPU.
  • But to the offline rendering, the "renderer" equals to "renderer logic" + "external logic", executor usually is the CPU.

So, still, back to the reality, what‘s the best solution for the user ? My answer is, super fast viewport with good extensible feature for the offline renderer. We even don‘t have to spend any time to do realtime shadowing, but focus on the geometry optimisation. We don‘t need realtime displacement, because for the production, the viewport will definitely die. But we need a way to check qualities, such as UV rendering, simple texture rendering, vertex attribute rendering, which is necessary for the DCC software. User could directly preview the real production frame, but don‘t have to care the viewport. To the viewport, it must be able to handle massive different objects, that‘s the most important things in future production.

Unlucky, today we are surrounded by the all advertising bullshit, whatever how good the demo it is, just the demo, if people do believe demo, that means not professional or lying. So easy.

时间: 2024-12-23 14:26:41

DCC Software and Graphics System的相关文章

PatentTips - Sprite Graphics Rendering System

BACKGROUND This disclosure relates generally to the field of computer graphics. More particularly, but not by way of limitation, it relates to technique for manipulating sprites in a rendering system for use with a graphics processor unit (GPU). A sp

Method, apparatus, and system for speculative abort control mechanisms

An apparatus and method is described herein for providing robust speculative code section abort control mechanisms. Hardware is able to track speculative code region abort events, conditions, and/or scenarios, such as an explicit abort instruction, a

System and method for dynamically adjusting to CPU performance changes

FIELD OF THE INVENTION The present invention is related to computing systems, and more particularly to a system and method for adjusting to changes in processor performance. BACKGROUND INFORMATION Designers of mobile computing platforms are faced wit

Role-based access control modeling and auditing system

A?role-based?access?control?(RBAC) modeling and auditing system is described that enables a user to?access?and/or create security roles that can be applied to users of a first software application. When a security role having a particular set of perm

PatentTips - System and method to deprivilege components of a virtual machine monitor

BACKGROUND INFORMATION An embodiment of the present invention relates generally to virtualization platforms and, more specifically, to a system and method to run components of a virtual machine monitor at a reduced privilege level. Various mechanisms

[Quote] Android Graphics Architecture

From https://source.android.com/devices/graphics/architecture.html Graphics architecture IN THIS DOCUMENT BufferQueue and gralloc gralloc HAL SurfaceFlinger and Hardware Composer Hardware Composer The Need for Triple-Buffering Virtual Displays Case s

Unix System Overview

Unix System Overview Introduction All operating systems provide services for programs they run. Typicalservices include executinga new program, opening a file, reading a file, allocatinga region of memory, getting the current time of day, and so on.

PatentTips - Safe general purpose virtual machine computing system

BACKGROUND OF THE INVENTION The present invention relates to virtual machine implementations, and in particular to a safe general purpose virtual machine that generates optimized virtual machine computer programs that are executable in a general purp

微软职位内部推荐-Software Engineer II_HPC

微软近期Open的职位: Job Title: Software Engineer II_HPC Location: Shanghai, China Are you passionate about the new world of cloud computing? Do you want to be a part of the effort to build the platform that embraces the most important trends in the industry