3D Software Rendering
Software rendering is the ability to render real time 3D polygonal graphics using only a CPU and not a GPU.
Niche Topic |
---|
This article discusses a niche topic that may not be popular with developers or with the mainstream. |
Historically, software rendering was often used in computer games in the 1990s and early 2000s because some gamers could not afford expensive GPUs at the time. Today, computers and game systems use hardware rendering, using GPUs with graphics APIs, OpenGL and Vulkan, to render amazing graphics.
When it comes to 3D polygon rendering, Blu-ray players does not support hardware rendering using a GPU; it only supports software rendering from the CPU. So, games like Crysis, Half-Life 2, or Halo will obviously not run on a BD player. BD-J is capable of rendering 3D graphics using Java graphics APIs such as EGL/JGL ES, JSR 184, or coding from scratch.
Mixing 2D spites and fonts with 3D polygons [Funk Fresh] |
A tech demo called Funky Fresh, developed by Luis Gonzalez, demonstrates the 3D capabilities of BD-J. It was originally intended to run on the PlayStation 3, so if you run the demo on normal BD players there will be some slow-downs as it was not optimized for low-end players. It's a wonderful demo showcasing on what BD-J could do.
Landscape using voxel effects [Funky Fresh] |
Here are a few downsides of software rendering:
- Software rendering needs more transistors to achieve the same speed as graphics hardware. This increases CPU usage, which can significantly impact performance, potentially slowing down the Xlet or the player, depending on the code and how well it is optimized. For instance, a 2.5D game like Doom will likely run smoothly because it relies on 2D sprites for its objects and focuses all polygons on the environments. In contrast, a fully 3D game like Cop: The Recruit demands much more processing power due to its higher polygon count to render everything without sprites.
- The higher the resolution, the greater the processing power required. A developer must select the appropriate resolution for stable performance.
- The graphics will resemble the quality of PlayStation 1, the Nintendo DS, or DOS games, featuring "blocky" textures. There's nothing inherently wrong with this style of graphics, as long as it is executed well. It’s generally not advisable to use a realistic approach, like in Call of Duty on the DS, since such graphics may appear uncanny or look poorly aged by modern standards—unless a developer wants to push the boundaries of the hardware using clever techniques. Instead, opting for a distinct art style or combining 2D sprites with 3D environments will help the game age more gracefully.
Here are a few positive aspects to consider:
- Independence from Graphics Hardware: Software rendering occurs entirely within the CPU, allowing it to operate without being constrained by the limitations of graphics hardware. This means there is no need for APIs such as OpenGL, Vulkan, or DirectX.
- Memory Capacity: BD-J supports 45.5 MB of graphics memory buffer, 32 MB of heap memory, 4 MB Text cache, and 8 MB sound memory. This capacity is sufficient for high-resolution textures and other applications, surpassing the memory available in both the PlayStation 1 and the Nintendo DS.
A poly model of a record player [Funky Fresh] |
Recommendations
If a developer wishes to create a video game with polygonal graphics. It's recommended to fellow these guidelines in order to keep stability and compatibility with most Blu-ray players.
- 2000 polygons in a single frame
- 128 х 128 texture size limit
- CPU usage should be under 300Mhz
- Render graphics at a 480×270 pixel buffer then upscale it to 960×540 resolution
But if a developers wishes to not to fellow these guidelines and want to push the game to it's absolute limit, then it's recommended to warn people that it may not play properly on BD players.
Doom-like games should be easier to render on low-end players |
Why in the world would I make a video game with retro low-poly 3D graphics?
Today, gamers appreciate retro graphics for their nostalgia and aesthetic appeal. Some games with this style of graphics not only age well but also become uniquely appealing in their own right. For example, Doom and its clones are popular due to their fun gameplay and simplicity. PS1-style horror games are popular for their uncanny and creepy aesthetics, like Silent Hill and Dementium. Games with a cartoony style have aged better than those that attempt to be realistic, such as Rayman. Some 2D games mixed with 3D backgrounds will look great if done right like Final Fantasy Tactics.
A render of the Mystery Machine [Funky Fresh] |
If a developer does not wish to use real time software rendering, but use pseudo 3D graphics, checkout the Pseudo 3D graphics page.
External Links
Author(s): Æ Firestone
Popular Pages
-
Type of format Exapanded Color Space First published 2007 Developer Sony Filename extension ? Open Format? ...
-
Auro-3D Type of format Uncompressed lossless audio format First released 2005 Developer Auro Technologies Compres...
-
Type Programming /scripting language Paradigm Multi-paradigm: event-driven, functional, imperative, procedural, object-orie...