Thank god, we have another patent to mull over. REVOLUTIONYOTTAX spotted it over on the Nintendo forums. And strap yourselves in, this one will have us baffled until the Wii hits the stores, no doubt.
The patent is entitled Recirculating shade tree blender for a graphics system and get ready for a number of mouthfuls, here are the details. This patent comprises:
* A generalized shade tree blender that can be used for multitexturing as well as a number of other flexible blending effects. (...)
* Recirculating shader hardware within a graphics pipeline can be controlled to provide a number of independently controllable blending stages. (...) Thus, relatively low cost and compact shader hardware can be used to implement arbitrarily complex shade trees. (...)
* The results of a first texture mapping operation is provided to a reconfigurable shader. The shader performs a blending operation in response to the first texture mapping operation. The shader is then reconfigured, and is connected to receive the results of a further texturing operation. The reconfigured shader combines its previous results with the results of the further texturing operation to provide a blended output. (...)
* A shader can be recirculated any desired number of times to implement an arbitrarily complex shading model (...) [in order to] provide great flexibility in implementing a variety of complex shading models. (...)
* A recirculating shade tree pixel blender is implemented in hardware to minimize processing time per stage. In more detail, (...) [this] provides a relatively low chip-footprint, versatile texture-environment processing subsystem including a hardware accelerated programmable texture shader/pixel blender that circulates computed color, opacity and other data over multiple cycles/stages. (...)
Right, I am sure that this is lost on the majority of readers. It´s certainly lost on the majority of writers (i.e. me), so let us move on to other parts.
What is a shade tree, then? The patent´s description reads:
Generally speaking, a shade tree is a tree of nodes each of which takes parameters from its children and produces parameters for its parent. For example, the parameters may be the terms of the illumination equation (e.g., specular coefficient or surface Normal). Other parameters might comprise atmospheric effects (e.g., haze) or projections.
The text goes on to note that this technique has been readily used in pre-rendered graphics. For further reference, a document is cited. It is a paper that was published in 1984. Its author, Robert L. Cook, has worked for the computer division of Lucasfilm, is co-creator of the RenderMan software and is now vice president of software engineering at Pixar Animation Studios.
Shade Trees seem to have been a very important discovery as far as pre-rendered graphics go, as Mark Schmelzenbach explains (spelling mistakes removed):
In his 1984 paper, Cook developed the idea of shade trees. This is a very powerful model that allows the user to develop complex shading models using a 'shading language' without having to delve into the actual framework of the rendering program. The language was extended in 1985 by Perlin to provide control and looping structures, as well as logical operators. This evolved to eventually form the basis for textures in RenderMan.
Shade trees provide the ability to contol every part of the shading calculation. This allows the user access to both 'classical' shading models and experimental. Shaders can even be developed for a specific scene, producing (for lack of a better term), elegant hacks.
So this patent may somehow enable this technique to be used in real-time rendering and, put very bluntly, will make things easier and graphics prettier for developers and consumers, respectively. By how much, however, we don´t know. So, instead of going into this deeper, I would like to focus on a few paragraphs that are not quite as prominent. (formatting is mine)
Certain of the above-described system components 50 could be implemented as other than the home video game console configuration described above. For example, one could run graphics application or other software written for system 50 on a platform with a different configuration that emulates system 50 or is otherwise compatible with it. If the other platform can successfully emulate, simulate and/or provide some or all of the hardware and software resources of system 50, then the other platform will be able to successfully execute the software.
Are you with me this far? The patent is related to a home console, so it must concern the Wii. And here it seems to suggest that you can use Wii software on other platforms. My first thought was Wii - DS connectivity, my second was Virtual Console. But read on:
As one example, an emulator may provide a hardware and/or software configuration (platform) that is different from the hardware and/or software configuration (platform) of system 50. The emulator system might include software and/or hardware components that emulate or simulate some or all of hardware and/or software components of the system for which the application software was written. For example, the emulator system could comprise a general purpose digital computer such as a personal computer, which executes a software emulator program that simulates the hardware and/or firmware of system 50.
Some general purpose digital computers (e.g., IBM or MacIntosh personal computers and compatibles) are now equipped with 3D graphics cards that provide 3D graphics pipelines compliant with DirectX or other standard 3D graphics command APIs. They may also be equipped with stereophonic sound cards that provide high quality stereophonic sound based on a standard set of sound commands. Such multimedia-hardware-equipped personal computers running emulator software may have sufficient performance to approximate the graphics and sound performance of system 50. Emulator software controls the hardware resources on the personal computer platform to simulate the processing, 3D graphics, sound, peripheral and other capabilities of the home video game console platform for which the game programmer wrote the game software. (...)
Host 1201 may be a general or special purpose digital computing device such as, for example, a personal computer, a video game console, or any other platform with sufficient computing power. Emulator 1303 may be software and/or hardware that runs on host platform 1201, and provides a real-time conversion of commands, data and other information from storage medium 62 into a form that can be processed by host 1201. For example, emulator 1303 fetches "source" binary-image program instructions intended for execution by system 50 from storage medium 62 and converts these program instructions to a target format that can be executed or otherwise processed by host 1201.
This seems to me most interesting. Because it seems to go beyond both the DS connectivity issue and the Virtual Console.
I cannot quite make sense of what really is being suggested here. But it would appear that at least some Wii software can be made compatible with other devices, including personal computers and other gaming consoles. How that can be achieved and to what end, I don´t know.
Obviously, making the bulk of Wii software available to consumers without them having to buy the console is just stupid for a console manufacturer. So that can´t be it. But, at least with regard to some software, this does seem to be suggested here, after all. I give up, please have a go at solving this riddle.
Sources: US Patent & Trademark Office, Wikipedia, Mark Schmelzenbach
Thanks to: REVOLUTIONYOTTAX