EP1803098A1 - System, method, and computer program product for dynamic shader generation - Google Patents
System, method, and computer program product for dynamic shader generationInfo
- Publication number
- EP1803098A1 EP1803098A1 EP05804219A EP05804219A EP1803098A1 EP 1803098 A1 EP1803098 A1 EP 1803098A1 EP 05804219 A EP05804219 A EP 05804219A EP 05804219 A EP05804219 A EP 05804219A EP 1803098 A1 EP1803098 A1 EP 1803098A1
- Authority
- EP
- European Patent Office
- Prior art keywords
- shader
- code
- generating
- fragment
- texture
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Ceased
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—Three-dimensional [3D] image rendering
- G06T15/50—Lighting effects
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—Three-dimensional [3D] image rendering
- G06T15/50—Lighting effects
- G06T15/80—Shading
Definitions
- the present invention is directed, in general, to computer graphics .
- shader in general, is a graphics function that applies custom lighting, coloring, and other effects on a pixel-by-pixel basis, on vertices, on polygons, and on other objects, depending on the configuration and programming.
- a shader allows programmers add complex special effects to objects in a 3-D worid. In the current state of the art, it is the job of the user to create these shader programs . Shaders must be created by skilled software professionals, but may be used by skilled artistic professionals.
- Artistic professionals often specify the output properties they desire to achieve a certain appearance, but are unable to develop the shader source code they require to produce these properties .
- a preferred embodiment provides a system, method, and computer program product for automatically creating shader source code based on a set of desired graphical output properties .
- a preferred embodiment supports both of the emerging shader languages Cg and GLSL, and is applicable to other languages (such as HLSL) .
- One important value of the preferred embodiment is that it conveniently produces high-performance shaders that integrate an essentially arbitrary combination of supported graphics effects that cannot be otherwise combined unless specific code is written by a graphics professional.
- the disclosed embodiments encapsulate the expert knowledge of a computer graphics professional necessary to craft a shader for a specific purpose from a wide range of possible graphical effects .
- FIGURE 1 depicts a block diagram of a data processing system in which a preferred embodiment can be implemented;
- FIGURE 2 depicts JtAttribute, JtTexImage, and JtShader Class Diagrams, in accordance with a preferred embodiment;
- FIGURE 3 depicts JtLightSet and JtDrawStyle Class Diagrams, in accordance with a preferred embodiment
- FIGURE 4 depicts a UML diagram that explains the exact types and enumerations required to implement the interface, in accordance with a preferred embodiment
- FIGURE 5 depicts a flowchart of a process of generating vertex shader source code in accordance with a preferred embodiment.
- FIGURE 6 depicts a flowchart of a process of generating fragment shader source code in accordance with a preferred embodiment.
- FIGURES 1 through 6 discussed below, and the various embodiments used to describe the principles of the present invention in this patent document are by way of illustration only and should not be construed in any way to limit the scope of the invention. Those skilled in the art will understand that the principles of the present invention may be implemented in any suitably arranged device. The numerous innovative teachings of the present application is described with particular reference to the presently preferred embodiment.
- FIGURE 1 depicts a block diagram of a data processing system in which a preferred embodiment can be implemented.
- the data processing system depicted includes a processor 102 connected to a level two cache/bridge 104, which is connected in turn to a local system bus 106.
- Local system bus 106 may be, for example, a peripheral component interconnect (PCI) architecture bus.
- PCI peripheral component interconnect
- Also connected to local system bus in the depicted example are a main memory 108 and a graphics adapter 110.
- Peripherals such as local area network (LAN) / Wide Area Network / Wireless (e.g. WiFi) adapter 112, may also be connected to local system bus 106.
- Expansion bus interface 114 connects local system bus 106 to input/output (I/O) bus 116.
- I/O bus 116 is connected to keyboard/mouse adapter 118, disk controller 120, and I/O adapter 122.
- audio adapter 124 Also connected to I/O bus 116 in the example shown is audio adapter 124, to which speakers (not shown) may be connected for playing sounds.
- Keyboard/mouse adapter 118 provides a connection for a pointing device (not shown) , such as a mouse, trackball, trackpointer, etc.
- pointing device such as a mouse, trackball, trackpointer, etc.
- a data processing system in accordance with a preferred embodiment of the present invention includes an operating system employing a graphical user interface.
- the operating system permits multiple display windows to be presented in the graphical user interface simultaneously, with each display window providing an interface to a different application or to a different instance of the same application.
- a cursor in the graphical user interface may be manipulated by a user through the pointing device. The position of the cursor may be changed and/or an event, such as clicking a mouse button, generated to actuate a desired response.
- One of various commercial operating systems such as a version of Microsoft WindowsTM, a product of Microsoft Corporation located in Redmond, Wash, may be employed if suitably modified.
- the operating system is modified or created in accordance with the present invention as described.
- a preferred embodiment provides a system, method, and computer program product for automatically creating shader source code based on a set of desired graphical output properties.
- a preferred embodiment, JtShaderEffects is implemented as a part of a visualization toolkit using in conjunction with modeling systems available from UGS CORP. of Piano, TX, and supports both of the emerging shader languages Cg and GLSL.
- An important value of JtShaderEffects is that is conveniently produces high-performance shaders that integrates an essentially arbitrary combination of supported graphics effects that cannot be otherwise combined unless specific code is written by a graphics professional.
- JtShaderEffects encapsulates the expert knowledge of a computer graphics professional necessary to craft a shader for a specific purpose from a wide range of possible graphical effects.
- JtAttribute refers to a modifier, placed in a scene graph, which is intended to express some aspect of the manner in which the geometric objects lying in the scene graph are to be rendered.
- Each JtAttribute encodes a small piece of how objects are to be rendered by the system.
- Examples of JtAttributes are material color, texture maps, and light sources. These JtAttributes are "washed” or “accumulated” down the graph to arrive at a final "JtState" that represents the full description of how an object is to be rendered.
- JtShaderEffects has the challenging task of taking a description of the specific visual effects desired by the application, mixing this description together with the JtAttributes that are current at some point in the scene graph, and translating that description into on-the-fly generated JtShaders such that when applied, produce the desired visual effect.
- JtShaderEffects is itself a JtAttribute, and is washed down the scene graph along with all other attributes.
- the attribute washing mechanism automatically detects the attribute changes to the logical scene graph (LSG) , and re-washes the attributes in the affected portion of the LSG as needed.
- LSG logical scene graph
- the result of this operation is a fully-specified, comprehensive, and up-to-date JtState for each renderable entity in the LSG.
- These accumulated JtShaderEffects attributes can then generate shader source code using the full knowledge of the modeling system state.
- the controlling application's responsibilities are considerably simplified, and the modeling system then has control over when shader source code is generated, and in doing so only as necessary.
- texture mapping is a function to be managed by a modeling system JtAttribute
- environment mapping and bump mapping are functions to be handled by the JtShaderEffects. Similar reasoning is applied to the additional effects of Phong shading, shadow generation, and paint effects.
- the JtShaderEffects accepts the following visual feature requests, which are all blended together into an integrated implementation: Model coordinate light sources (implicitly from the currently accumulated JtState) ; View coordinate light sources (implicitly from the currently accumulated JtState) ; World coordinate light sources (implicitly from the currently accumulated JtState) ; Multiple texture maps (implicitly from the currently accumulated JtState) ; Environment map (spherical or cube; this feature designates one of the active texture maps to be applied as an environment map) ; Bump map (this feature designates one of the active texture maps to be applied as a bump map) ; Phong or Gouraud shading; and Shadows.
- Model coordinate light sources (implicitly from the currently accumulated JtState) ; View coordinate light sources (implicitly from the currently accumulated JtState) ; World coordinate light sources (implicitly from the currently accumulated JtState) ; Multiple texture maps (implicitly from
- JtShaderEffects attribute When a JtShaderEffects attribute is accumulated into a JtState, it uses the complete description of the graphical state present in JtState to know what kinds of graphical features to support.
- the JtState encodes: The number and types of light sources present; All texture maps to be applied, and their associated texture environment specifying how they are to be used; Any automatic generation of texture coordinates; A texture map may be designated as a bump map; A texture map may be designated as an environment map, and its reflectivity may be present; and the material colors (ambient, specular, diffuse, emitted) and their associated parameters (shininess, alpha) .
- JtShaderEffects examines this list of graphical features, and generates one or more shader programs specifically crafted to run as optimally as possible on the underlying graphics hardware.
- Various embodiments add new functionality to the modeling system graphics middleware toolkit and JT file format to support important new capabilities for texturing, materials, images, shadows, and most notably, shaders .
- Shader A user-definable program, expressed directly in a target assembly language, or in high-level form to be compiled.
- a shader program replaces a portion of the otherwise fixed-functionality graphics pipeline with some user-defined program.
- hardware manufacturers have made it possible to run a shader for each vertex that is processed ahd/or each pixel that is rendered.
- Vertex Shader A small user-defined program that is run for each vertex that is sent to the GPU and processed.
- a vertex shader can alter vertex positions and normals, generate texture coordinates, perform Gouraud vertex lighting, etc.
- Pixel Shader - (More accurately called fragment shader.) A fragment is a proto-pixel generated by triangle scan-conversion, but not yet laid down into the frame buffer) A small user-defined program is run for each fragment generated by the hardware's scan-conversion logic. A fragment shader can support sophisticated effects like Phong shading, shadow mapping, bump mapping, reflection mapping, etc.
- OGLSL A high-level, C-like shading language becoming available in OpenGL 2.0 implementations. Designed and promoted by 3Dlabs as a more vendor-neutral and platform-neutral alternative to Cg.
- HLSL A high-level, C-like shading language for the Direct3D graphics API, designed cooperatively between Microsoft and nVIDIA. Supported by nVIDIA and ATI. HLSL is, at present, essentially identical to Cg.
- Texture mapping A technique of mapping a texture image (q.v.) onto geometric entities. In its simplest form, texture mapping resembles applying wallpaper to a surface. A texture map is a composite entity which is broken into two pieces : a texture image and the texture environment.
- Texture image An image, usually a two- dimensional color image, used for texture mapping. As the name implies, a texture image is only a rectangular array of texels (c.f. pixels), and does not contain or imply any information about how the image is to be mapped onto geometry.
- Texture environment This is a composite set of individual attributes that precisely describe how a texture image (q.v.) is to be mapped onto a piece of geometry. Typical elements of the texture environment include: wrap/clamp modes, blending type, automatic texture coordinate generation functions, etc.
- Bump mapping A texture mapping technique by which the per-pixel normal vector is adjusted based on a stored normal map in order to cause small scale shading effects that are common to low-relief rough surfaces .
- NVIDIA A graphics hardware vendor, based in Santa Clara, CA. Maker of the Quadro (professional line) and GEForce (consumer line) GPUs. Currently competing commercially with ATI (q.v.) for marketplace and technical dominance in the commodity graphics hardware business. Inventor of the Cg high-level shading language for OpenGL. Co-inventor of the HLSL shading language for Direct3D.
- JtShaderEffects is this feature's centerpiece. JtShaderEffects is derived from JtAttribute, and is propagated down the LSG, just as other JtAttributes are.
- JtShaderEffects has the challenging task of taking a description of the specific visual effects desired by the application, mixing this description together with the JtAttributes that are current at some point in the scene graph, and translating that description into on-the-fly generated JtShaders such that when applied, produce the desired visual effect.
- JtShaderEffects is implemented as a factory- like object, then the controlling application must realize that there are two distinct situations in the LSG that require different shader source code, and deal with the JtShaderEffects twice, taking care to anoint the LSG appropriately with its results. Thus, the controlling application carries a heavy burden of tracking attribute changes to the LSG, and regenerating arbitrary amounts of shader code upon any attribute changes. In short, this method does not take any advantage of the modeling system's strong and lazy attribute accumulation mechanism. [0054] If, however, the JtShaderEffects is a
- JtAttribute it is washed down the LSG along with all other attributes.
- the existing attribute washing mechanism automatically detects the attributes changes to the LSG, and re-wash the attributes in the affected portion of the LSG as needed.
- the natural result of this operation is two distinct attribute states at the leaf level: the original one washed down from the root node, and the modified one caused by the addition of the light or texture map.
- These accumulated JtShaderEffeets attributes can then generate shader source code using the full knowledge of the modeling system state. The controlling application's responsibilities are considerably simplified, and the modeling system then has control over when shader source code is generated, and in do so only as necessary.
- Light source coordinate system such as model-, world-, or viewpoint coordinates. These data control which geometric coordinate system the light source acts within.
- Light source color information This includes all modeled parameters such as diffuse color, specular color, and ambient color.
- Spotlight parameters if light is a spotlight
- spot direction if light is a spotlight
- cone angle if cone angle, and falloff parameters that control the distribution of light intensity over the cone angle.
- Lighting information such as:
- the texture's channel number Multiple textures may be applied simultaneously, with textures from higher-numbered channels laying on top of lower- channeled textures.
- a method of accessing the texture itself within a shader such as the texture's OpenGL texture object name or its associated OpenGL texture unit number.
- the texture's texgen environment are used to automatically generate texture coordinates during vertex processing according to some preset scheme.
- the texture transform matrix [0074] From the ShaderEffects itself [0075] Which texture map, if any, is designated as an environment map. Also specified along with these parameters is a reflectivity parameter which controls how intensely a mapped surface will reflect the environment map. [0076] Which texture map, if any, is designated as a bump map. Also specified along with this parameter are two others . The first is a flag that encodes whether the texture map is to be interpreted as a tangent space bump map, or as a model space bump map. A tangent space map encodes a normal vector perturbation relative to the surface's inherent normal.
- a model space bump map is interpreted verbatim as the desired normal vector map, and hence, must be crafted by the user specifically for a give piece of geometry.
- a second bumpiness parameter is provided as a convenient way of adjusting the visual magnitude of the perturbations in a tangent space normal map.
- Global lighting model information including but not limited to global ambient light color.
- FIGURE 5 depicts a flowchart of a process for generating a vertex shader, in accordance with a preferred embodiment.
- JtShaderEffects performs the following broad steps: [0085] Generate the shader preamble and parameter list using the information above (step 505) . Shader parameters are necessary for:
- Input The incoming vertex position, normal vector, and vertex color.
- Input Texture coordinates for each available and active texture channel
- Input If tangent space bump mapping is selected, then per-vertex model coordinate tangent vectors are required [0089] Input: Model-, View-, and Projection matrices.
- Input Texture matrices for each active texture channel .
- Input Any texture coordinate generation parameters for texture channels requiring it.
- Output The outgoing transformed vertex position, untransformed vertex position, transformed normal vector.
- Output The color, either computed though lighting calculations, or otherwise, associated with the current vertex.
- Incoming vertices and normals are transformed from their native model coordinates into the view coordinate system (step 510) .
- Texture coordinates are generated for each active texture channel if the corresponding texgen environment calls for such (step 515) .
- All channels' texture coordinates are transformed by their respective texture matrices (step 520) .
- step 525) lighting code is generated for each light source (step 525) .
- the resulting lighting contributions from each light source are summed up, and presented to the appropriate output shader parameter to be passed along the graphics pipeline.
- per- vertex colors are passed along as the final color (step 535) . If per vertex colors are not present, then the current diffuse material color is passed along instead (step 640) .
- FIGURE 6 depicts a flowchart of a process for generating a fragment shader, in accordance with a preferred embodiment.
- JtShaderEffects performs the following broad steps:
- Input The incoming vertex position, normal vector, and vertex color.
- Input Texture coordinates for each available and active texture channel [0111] Input: If tangent space bump mapping is selected, then per-vertex view coordinate tangent vectors are required from the vertex shader
- Input Model-, View-, and Projection matrices.
- Input Handles (or samplers) to each active texture image.
- Input If environment mapping is selected, the environment map reflectivity.
- Input If tangent-space bump mapping is selected, the bumpiness to be applied to the bump map.
- Output The color, either computed though lighting calculations, or otherwise, associated with the current pixel.
- bump mapping If bump mapping is selected, generate code to access the specified bump map and use it to perturb the existing normal vector, or produce a new one outright (step 610) . This perturbed normal vector feeds directly into any lighting computations performed below.
- step 615 lighting code is generated for each light source (step 615) .
- the resulting lighting contributions from each light source are summed up, and placed into a running temporary- fragment color variable which may be modified by later texturing code.
- step 620 per- vertex color values passed in from the vertex shader are copied out verbatim. If no lighting at all is performed, then per-vertex colors are copied out verbatim.
- step 625) If texturing is present, generate code that accesses the requested Texel, and blends it with the above-computed running temporary fragment color according to the texture blend mode (step 625) .
- This step includes generating shader source code for environment mapped textures.
- the final running temporary fragment color value is stored as the appropriate output shader parameter for further processing by the graphics pipeline back-end (step 630) .
- machine usable mediums include: nonvolatile, hard-coded type mediums such as read only memories (ROMs) or erasable, electrically programmable read only memories (EEPROMs) , user-recordable type mediums such as floppy disks, hard disk drives and compact disk read only memories (CD-ROMs) or digital versatile disks (DVDs) , and transmission type mediums such as digital and analog communication links.
- ROMs read only memories
- EEPROMs electrically programmable read only memories
- user-recordable type mediums such as floppy disks, hard disk drives and compact disk read only memories (CD-ROMs) or digital versatile disks (DVDs)
- transmission type mediums such as digital and analog communication links.
Landscapes
- Engineering & Computer Science (AREA)
- Computer Graphics (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Image Generation (AREA)
Abstract
Description
Claims
Applications Claiming Priority (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US62063804P | 2004-10-20 | 2004-10-20 | |
| US11/047,375 US20060082577A1 (en) | 2004-10-20 | 2005-01-31 | System, method, and computer program product for dynamic shader generation |
| PCT/US2005/037585 WO2006044963A1 (en) | 2004-10-20 | 2005-10-19 | System, method, and computer program product for dynamic shader generation |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| EP1803098A1 true EP1803098A1 (en) | 2007-07-04 |
Family
ID=35519971
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| EP05804219A Ceased EP1803098A1 (en) | 2004-10-20 | 2005-10-19 | System, method, and computer program product for dynamic shader generation |
Country Status (5)
| Country | Link |
|---|---|
| US (1) | US20060082577A1 (en) |
| EP (1) | EP1803098A1 (en) |
| JP (1) | JP4809359B2 (en) |
| KR (1) | KR101184500B1 (en) |
| WO (1) | WO2006044963A1 (en) |
Families Citing this family (30)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US7385604B1 (en) * | 2004-11-04 | 2008-06-10 | Nvidia Corporation | Fragment scattering |
| US8223845B1 (en) | 2005-03-16 | 2012-07-17 | Apple Inc. | Multithread processing of video frames |
| US7499051B1 (en) * | 2005-04-29 | 2009-03-03 | Adobe Systems Incorporated | GPU assisted 3D compositing |
| US7444583B2 (en) * | 2005-05-27 | 2008-10-28 | Microsoft Corporation | Standard graphics specification and data binding |
| JP2007066064A (en) * | 2005-08-31 | 2007-03-15 | Sega Corp | Image generating apparatus and program |
| US7750913B1 (en) | 2006-10-24 | 2010-07-06 | Adobe Systems Incorporated | System and method for implementing graphics processing unit shader programs using snippets |
| KR100898991B1 (en) * | 2006-12-02 | 2009-05-27 | 한국전자통신연구원 | Apparatus for shader providing and transformation of 3d graphic system |
| WO2008066292A1 (en) * | 2006-12-02 | 2008-06-05 | Electronics And Telecommunications Research Institute | Apparatus for providing and transforming shader of 3d graphic system |
| US8276129B1 (en) | 2007-08-13 | 2012-09-25 | Nvidia Corporation | Methods and systems for in-place shader debugging and performance tuning |
| US8296738B1 (en) * | 2007-08-13 | 2012-10-23 | Nvidia Corporation | Methods and systems for in-place shader debugging and performance tuning |
| US7843462B2 (en) * | 2007-09-07 | 2010-11-30 | Seiko Epson Corporation | System and method for displaying a digital video sequence modified to compensate for perceived blur |
| US7932902B2 (en) * | 2007-09-25 | 2011-04-26 | Microsoft Corporation | Emitting raster and vector content from a single software component |
| US8203558B2 (en) * | 2008-01-28 | 2012-06-19 | Apple Inc. | Dynamic shader generation |
| US8866827B2 (en) * | 2008-06-26 | 2014-10-21 | Microsoft Corporation | Bulk-synchronous graphics processing unit programming |
| US8581912B2 (en) | 2008-06-27 | 2013-11-12 | Microsoft Corporation | Dynamic subroutine linkage optimizing shader performance |
| JP2011086235A (en) * | 2009-10-19 | 2011-04-28 | Fujitsu Ltd | Image processing apparatus, image processing method, and image processing program |
| KR20110066011A (en) * | 2009-12-10 | 2011-06-16 | 한국전자통신연구원 | Similar Shader Retrieval Apparatus and Method Using Image Feature Extraction |
| US8677186B2 (en) | 2010-12-15 | 2014-03-18 | Microsoft Corporation | Debugging in data parallel computations |
| US8997066B2 (en) | 2010-12-27 | 2015-03-31 | Microsoft Technology Licensing, Llc | Emulating pointers |
| US9412193B2 (en) | 2011-06-01 | 2016-08-09 | Apple Inc. | Run-time optimized shader program |
| US8539458B2 (en) | 2011-06-10 | 2013-09-17 | Microsoft Corporation | Transforming addressing alignment during code generation |
| US9070227B2 (en) | 2013-03-04 | 2015-06-30 | Microsoft Technology Licensing, Llc | Particle based visualizations of abstract information |
| US9754392B2 (en) | 2013-03-04 | 2017-09-05 | Microsoft Technology Licensing, Llc | Generating data-mapped visualization of data |
| US20140354658A1 (en) * | 2013-05-31 | 2014-12-04 | Microsoft Corporation | Shader Function Linking Graph |
| US10255651B2 (en) * | 2015-04-15 | 2019-04-09 | Channel One Holdings Inc. | Methods and systems for generating shaders to emulate a fixed-function graphics pipeline |
| US10102662B2 (en) | 2016-07-27 | 2018-10-16 | Advanced Micro Devices, Inc. | Primitive culling using automatically compiled compute shaders |
| CN115023728B (en) | 2020-01-31 | 2025-09-26 | 高通股份有限公司 | Method and apparatus for facilitating dedicated unbound stateful processors |
| KR102173546B1 (en) * | 2020-04-28 | 2020-11-03 | 주식회사 라이언게임즈 | Apparatus and method of rendering game objects |
| US12573103B2 (en) * | 2023-07-24 | 2026-03-10 | Adobe Inc. | Environment map upscaling for digital image generation |
| CN119273832B (en) * | 2024-11-05 | 2025-05-30 | 青岛复升科技有限公司 | A post-processing point light rendering method based on Cesium |
Family Cites Families (17)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5793374A (en) * | 1995-07-28 | 1998-08-11 | Microsoft Corporation | Specialized shaders for shading objects in computer generated images |
| US6496190B1 (en) * | 1997-07-02 | 2002-12-17 | Mental Images Gmbh & Co Kg. | System and method for generating and using systems of cooperating and encapsulated shaders and shader DAGs for use in a computer graphics system |
| US6771264B1 (en) * | 1998-08-20 | 2004-08-03 | Apple Computer, Inc. | Method and apparatus for performing tangent space lighting and bump mapping in a deferred shading graphics processor |
| US6664963B1 (en) * | 2000-05-31 | 2003-12-16 | Nvidia Corporation | System, method and computer program product for programmable shading using pixel shaders |
| US6850244B2 (en) * | 2001-01-11 | 2005-02-01 | Micron Techology, Inc. | Apparatus and method for gradient mapping in a graphics processing system |
| US6614431B1 (en) * | 2001-01-18 | 2003-09-02 | David J. Collodi | Method and system for improved per-pixel shading in a computer graphics system |
| US6657624B2 (en) * | 2001-12-21 | 2003-12-02 | Silicon Graphics, Inc. | System, method, and computer program product for real-time shading of computer generated images |
| US7159212B2 (en) * | 2002-03-08 | 2007-01-02 | Electronic Arts Inc. | Systems and methods for implementing shader-driven compilation of rendering assets |
| US7009605B2 (en) * | 2002-03-20 | 2006-03-07 | Nvidia Corporation | System, method and computer program product for generating a shader program |
| US7355597B2 (en) * | 2002-05-06 | 2008-04-08 | Brown University Research Foundation | Method, apparatus and computer program product for the interactive rendering of multivalued volume data with layered complementary values |
| US6825843B2 (en) * | 2002-07-18 | 2004-11-30 | Nvidia Corporation | Method and apparatus for loop and branch instructions in a programmable graphics pipeline |
| US6809732B2 (en) * | 2002-07-18 | 2004-10-26 | Nvidia Corporation | Method and apparatus for generation of programmable shader configuration information from state-based control information and program instructions |
| US7176917B1 (en) * | 2002-08-09 | 2007-02-13 | Avid Technology, Inc. | Visual programming interface for a three-dimensional animation system for defining real time shaders using a real-time rendering engine application programming interface |
| US20050140672A1 (en) * | 2003-02-18 | 2005-06-30 | Jeremy Hubbell | Shader editor and compiler |
| US6954211B2 (en) * | 2003-06-30 | 2005-10-11 | Microsoft Corporation | Hardware-accelerated anti-aliased graphics |
| EP1494175A1 (en) * | 2003-07-01 | 2005-01-05 | Koninklijke Philips Electronics N.V. | Selection of a mipmap level |
| US7523406B2 (en) * | 2003-07-22 | 2009-04-21 | Autodesk Inc. | Dynamic parameter interface |
-
2005
- 2005-01-31 US US11/047,375 patent/US20060082577A1/en not_active Abandoned
- 2005-10-19 EP EP05804219A patent/EP1803098A1/en not_active Ceased
- 2005-10-19 KR KR1020077011298A patent/KR101184500B1/en not_active Expired - Fee Related
- 2005-10-19 WO PCT/US2005/037585 patent/WO2006044963A1/en not_active Ceased
- 2005-10-19 JP JP2007538000A patent/JP4809359B2/en not_active Expired - Fee Related
Non-Patent Citations (2)
| Title |
|---|
| "Scene Graph", Retrieved from the Internet <URL:http://en.wikipedia.org/wiki/Scene_graph> [retrieved on 20111213] * |
| See also references of WO2006044963A1 * |
Also Published As
| Publication number | Publication date |
|---|---|
| KR20070084346A (en) | 2007-08-24 |
| JP4809359B2 (en) | 2011-11-09 |
| KR101184500B1 (en) | 2012-09-19 |
| WO2006044963A1 (en) | 2006-04-27 |
| JP2008517403A (en) | 2008-05-22 |
| US20060082577A1 (en) | 2006-04-20 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US20060082577A1 (en) | System, method, and computer program product for dynamic shader generation | |
| US6567083B1 (en) | Method, system, and computer program product for providing illumination in computer graphics shading and animation | |
| CA2772030C (en) | Systems and methods for providing intermediate targets in a graphics system | |
| RU2324978C2 (en) | Systems and methods to provide controlled texture discretisation | |
| US8773433B1 (en) | Component-based lighting | |
| CA2479931C (en) | System, method and computer program product for generating a shader program | |
| US6639595B1 (en) | Achromatic lighting in a graphics system and method | |
| Wolff | OpenGL 4.0 shading language cookbook | |
| EP1522966A2 (en) | Systems and methods for robust sampling for real-time relighting of objects in natural lighting environments | |
| Merlo et al. | 3D model visualization enhancements in real-time game engines | |
| JP2003528406A (en) | Apparatus and method for rendering 3D objects using parametric texture maps | |
| Rhoades et al. | Real-time procedural textures | |
| JP2011522322A (en) | System, method and computer program product for plane filling engines using geometry shaders | |
| Kerr et al. | Bendylights: Artistic control of direct illumination by curving light rays | |
| JP4219090B2 (en) | Method, system, and computer program product for providing lighting in computer graphics shading and animation | |
| US7733349B1 (en) | Device, method, and system for generating per-pixel light values using texture parameters | |
| Lehn et al. | Lighting models | |
| Ragan-Kelley | Practical interactive lighting design for RenderMan scenes | |
| Ilett | Lighting and Shadows | |
| Klein et al. | Realreflect–real-time visualization of complex reflectance behaviour in virtual protoyping | |
| Wald | The openrt-api | |
| Fahlén | Illumination for Real-Time Rendering of Large Architectural Environments | |
| Chen | Rendering in computer graphics | |
| Edström | Radiosity for Real-Time Simulations of Highly Tessellated Models | |
| Bajt | Real-time Simulation of Volumetric Stage Light |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| PUAI | Public reference made under article 153(3) epc to a published international application that has entered the european phase |
Free format text: ORIGINAL CODE: 0009012 |
|
| 17P | Request for examination filed |
Effective date: 20070511 |
|
| AK | Designated contracting states |
Kind code of ref document: A1 Designated state(s): AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IS IT LI LT LU LV MC NL PL PT RO SE SI SK TR |
|
| 17Q | First examination report despatched |
Effective date: 20071015 |
|
| DAX | Request for extension of the european patent (deleted) | ||
| RAP1 | Party data changed (applicant data changed or rights of an application transferred) |
Owner name: SIEMENS PRODUCT LIFECYCLE MANAGEMENT SOFTWARE INC. |
|
| REG | Reference to a national code |
Ref country code: DE Ref legal event code: R003 |
|
| STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: THE APPLICATION HAS BEEN REFUSED |
|
| 18R | Application refused |
Effective date: 20120613 |