Realtime 3d Rendering

0 views
Skip to first unread message

Jeana Rodia

unread,
Aug 4, 2024, 6:03:08 PM8/4/24
to ditillisem
Realtime computer graphics or real-time rendering is the sub-field of computer graphics focused on producing and analyzing images in real time. The term can refer to anything from rendering an application's graphical user interface (GUI) to real-time image analysis, but is most often used in reference to interactive 3D computer graphics, typically using a graphics processing unit (GPU). One example of this concept is a video game that rapidly renders changing 3D environments to produce an illusion of motion.

Computers have been capable of generating 2D images such as simple lines, images and polygons in real time since their invention. However, quickly rendering detailed 3D objects is a daunting task for traditional Von Neumann architecture-based systems. An early workaround to this problem was the use of sprites, 2D images that could imitate 3D graphics.


Different techniques for rendering now exist, such as ray-tracing and rasterization. Using these techniques and advanced hardware, computers can now render images quickly enough to create the illusion of motion while simultaneously accepting user input. This means that the user can respond to rendered images in real time, producing an interactive experience.


Real-time graphics systems must render each image in less than 1/30th of a second. Ray tracing is far too slow for these systems; instead, they employ the technique of z-buffer triangle rasterization. In this technique, every object is decomposed into individual primitives, usually triangles. Each triangle gets positioned, rotated and scaled on the screen, and rasterizer hardware (or a software emulator) generates pixels inside each triangle. These triangles are then decomposed into atomic units called fragments that are suitable for displaying on a display screen. The fragments are drawn on the screen using a color that is computed in several steps. For example, a texture can be used to "paint" a triangle based on a stored image, and then shadow mapping can alter that triangle's colors based on line-of-sight to light sources.


Real-time graphics are typically employed when interactivity (e.g., player feedback) is crucial. When real-time graphics are used in films, the director has complete control of what has to be drawn on each frame, which can sometimes involve lengthy decision-making. Teams of people are typically involved in the making of these decisions.


Real-time previewing with graphics software, especially when adjusting lighting effects, can increase work speed.[3] Some parameter adjustments in fractal generating software may be made while viewing changes to the image in real time.


The graphics rendering pipeline ("rendering pipeline" or simply "pipeline") is the foundation of real-time graphics.[4] Its main function is to render a two-dimensional image in relation to a virtual camera, three-dimensional objects (an object that has width, length, and depth), light sources, lighting models, textures and more.


The application stage is responsible for generating "scenes", or 3D settings that are drawn to a 2D display. This stage is implemented in software that developers optimize for performance. This stage may perform processing such as collision detection, speed-up techniques, animation and force feedback, in addition to handling user input.


Collision detection is an example of an operation that would be performed in the application stage. Collision detection uses algorithms to detect and respond to collisions between (virtual) objects. For example, the application may calculate new positions for the colliding objects and provide feedback via a force feedback device such as a vibrating game controller.


The application stage also prepares graphics data for the next stage. This includes texture animation, animation of 3D models, animation via transforms, and geometry morphing. Finally, it produces primitives (points, lines, and triangles) based on scene information and feeds those primitives into the geometry stage of the pipeline.


The geometry stage manipulates polygons and vertices to compute what to draw, how to draw it and where to draw it. Usually, these operations are performed by specialized hardware or GPUs.[5] Variations across graphics hardware mean that the "geometry stage" may actually be implemented as several consecutive stages.


Before the final model is shown on the output device, the model is transformed onto multiple spaces or coordinate systems. Transformations move and manipulate objects by altering their vertices. Transformation is the general term for the four specific ways that manipulate the shape or position of a point, line or shape.


In order to give the model a more realistic appearance, one or more light sources are usually established during transformation. However, this stage cannot be reached without first transforming the 3D scene into view space. In view space, the observer (camera) is typically placed at the origin. If using a right-handed coordinate system (which is considered standard), the observer looks in the direction of the negative z-axis with the y-axis pointing upwards and the x-axis pointing to the right.


Projection is a transformation used to represent a 3D model in a 2D space. The two main types of projection are orthographic projection (also called parallel) and perspective projection. The main characteristic of an orthographic projection is that parallel lines remain parallel after the transformation. Perspective projection utilizes the concept that if the distance between the observer and model increases, the model appears smaller than before. Essentially, perspective projection mimics human sight.


Clipping is the process of removing primitives that are outside of the view box in order to facilitate the rasterizer stage. Once those primitives are removed, the primitives that remain will be drawn into new triangles that reach the next stage.


Perhaps he means texture baking?

I think unreal only has lightmap baking.

You would need to render out textures offline for instance in v-ray to do that.

Then you can turn off the lights and have less realtime calculations.


That all gets nasty because there can be a lot of crossover. For instance you can render as spherical harmonic maps but then write out the final data as ambient + directional or a radiosity normal map.


Baking the lightmap is basically just rendering backwards, you render to UV coordinates interopolating the position and normal per vertex of the mesh instead of rendering to world coordinates interpolating the UV coordinates and normal per vertex (not wholly accurate, close enough for a summary).


Lightmapping is such a massive subject that there are even niche books on the little details like Practical Global Illumination with Irradiance Caching, which is 148 pages of zero pandering to unskilled or unfamiliar readers. One of my favorites on the subject.


You have to at least explain where you are as a programmer, your understanding of geometry and rendering, and what it is that you want to do with lightmapping - the last two are mandatory, the first - not so much (I can infer it).


At the simplest it may just be follow this tutorial on baking lightmaps in Blender and at the worst you could be getting ready for occupancy maps, how to actually use barycoords, hemicubes, and lattice interpolation.


I wanted to have a go at a number of "oldschool" demoscene rendering effects on a playdate. So what first started as a "let's see how many 3D polygons can the device render while still being at 20-30FPS", ended up somewhere entirely else, i.e. no polygons at all. Some pixel effects, some shadertoy-like SDF raymarching, and some raytracing (these are very limited of course).


Yay, not only this looks super interesting, I love the song which you made the word play for the title!

And thanks for mentioning about Outline 2024. Seems like a cool event I'll keep an eye for future versions.


No demoscene stuff - not that many hardcore folk have come to pd yet. But there's a few in the Playdate Squad discord by now. Some cool 3D stuff is happening, there's been several different implementations of fast triangle rendering. I'll pop you a DM with the link so you can join if you're interested.


do you a good and fast plugin for eealtime rendering for rhino?

Several years ago there was a plugin named , VSR

Where did they go?

They had one o the best rendering plugins for designers.

Unfortunately they stopped work !!!


Yes, but we are working directly with TwinMotion, Enscape, Vray, MindDesk, IrisVR, Fologram, Unreal and Unity to make sure we are linked and compatible as close as possible. Sometimes with live links and sometimes with running Inside.


Sounds like a no-brainer right? The ability to hand your client a PS4 controller and give them an interactive virtual tour of where their money is about to be poured into is on a whole other level of multimedia presentations. But why has it take so long for the design and architecture industries to adapt this technology? Why are so many firms stuck in the stone age with static images and spliced together animations that read more like diagrams than immersive representational experiences?


The other answer - the answer I believe to be more true than simply money - is that architects have no idea how to implement this type of experience. In a profession where control is often your only ally, relinquishing that control to someone who might not understand the design on a fundamental or even surface level is as ludicrous as not wearing a black turtleneck to work today. Architects give presentations that are so canned and so precisely manicured it leaves those who are viewing it only one possible conclusion about the validity and conceptual fortitude of the proposal.


While relinquishing that kind of control during a presentation to a client might be territory we never find ourselves entering in the world of design and architecture, I see real-time rendering as an important stepping stone in making the design process better. This is where the merits of the technology really start to show up.

3a8082e126
Reply all
Reply to author
Forward
0 new messages