Siggraph Rendermonkey Details and more....

Status
Not open for further replies.
ben6 said:
If the ARB had big problems with Cg then what was the purpose of today's press release regarding the ARB? To wit:

I suggest reading the ARB notes, which did not went through NVIDIAs PR department. I think this gives you a clearer picture of what's going on than this press release:

http://www.opengl.org/developers/about/arb/notes/meeting_note_2002-06-18.html#cg

Cg" discussion
NVIDIA wanted to discuss their goals with Cg (although they are not offering Cg to the ARB)

Principal goals are to enable apps to use all the features of NVIDIA hardware, do rapid prototyping, and make efficient use of the underlying architecture. "Profiles" allow compiler to control what it accepts as valid programs.

Goal is that there not need to be multiple, very similar shading languages for different underlying APIs and platforms. Thus Cg is syntactially and semantically compatible with HLSL in DX9; may not be true forever, but it is today. This is a constraint on evolving the language, had to get feedback from developers and work with Microsoft.

Bimal asked about NVIDIA's interest in incorporating a high-level language directly into OpenGL, ala 3Dlabs' design. Nick says what's important is solving developers' problems, and they want a single shading language. If the market wants an integrated language, NVIDIA will support that too - but they don't think that's what developers want, and they're less excited about it. What's critical to making Cg work is having the right low-level interfaces to the underlying API, and that's where they want to concentrate their efforts.

Discussion followed on the relative effort the ARB should put into low and high level language working groups. ARB_vertex_program now represents nearly 2 year old technology; low level interfaces need to look at branching, looping, etc. constructs.

Cg backend receives a partially optimized DAG representation of the shader. Must figure out how to map onto what the backend supports.

Compatibility with DX is very important, but they're willing to weigh advantages of changes vs. cost. Cg and the proposed "OpenGL 2.0" language are similar but not identical; both look like C, and both target multiple underlying execution units. Interfaces, communication between nodes, and accessing state across nodes are different. It's very late, but not too late to contemplate merging the two languages.
 
Xmas said:
Mephisto said:
Because ATI can only write their own compiler, but not their own PROFILE for Cg?
Why exactly wouldn't they be able to do this?

Why should they ?? They got their own solution...not to mention DX9 HLSL..call me crazy but why all of sudden is CG more important than OpenGL itself ???
Ideally if Nvidia was working towards pushing Opengl forward they would stop blocking ARB extentsions...sit down get it done then write a plugin for DX9 and Opengl 2.0..that would be to easy though :rolleyes:
 
Xmas said:
Mephisto said:
Because ATI can only write their own compiler, but not their own PROFILE for Cg?
Why exactly wouldn't they be able to do this?

Because the profiles are part of the language specification which is NVIDIA IP. Nvidia is the only one who can make changes at this level of Cg.
 
Renderman has no knowledge about animation, bones, or anything that could really be used in real time.

The Renderman spec was designed to specify a frame, and then a REYES renderer would render it. Movies are rendered by streaming thousands of RIB files to render farms, and then compositing each shot in a frame and then streaming the final frames into a movie format (35mm, huge RAID array, etc.).

The Renderman Shading Language is a bit more practical for real-time (as long as you ignore the optional ray server, for now); however, it's distinctions between atmosphere, light, surface, and transformation shaders don't really map nicely onto hardware that is only knowledgable about pixels and vertices. It can be done (e.g., Stanford Shading Language), but in my opinion, the potential benefits (running Renderman shaders directly) aren't worth the costs.
 
Doomtrooper,
next time you qoute me, please make sure what you write is in any way related to what I wrote...

Mephisto,
I highly doubt this.

"The choice of a compilation profile is made externally to the language (for example, via a compiler command-line switch)."

There's absolutely no reason why only NVidia could define profiles for Cg.
 
Even if Nvidia did abuse their control over CG in a few years (assuming CG and 3dlabs language were unified), nothing would prevent the ARB from deviating from that particular implementation for say OGL 3.0... I'm sure 3dlabs could offer a revised consensus version for instance.

The crux of the question should be the technical MERITS of the language perse, not hypothetical futures.
 
Because the profiles are part of the language specification which is NVIDIA IP. Nvidia is the only one who can make changes at this level of Cg.

Nope. The language spec is the BNF that determines whether a statement is syntactically and lexically valid Cg, and the bare minimum of functions that must be implemented in a standard library. Essentially, under the current license, integers, case and goto statements, objects and pointers can't be added to Cg until NVIDIA approves their addition.

Connectors are a bit of a gray area. IHVs can definitely expand on the current 3 connectors (by providing 16 perspective-correct interpolators, for example); however, it's not clear if application2tesselator would be a language specification or profile feature.

Since implementations of standard library functions and fragment program functions are all defined within a profile (not the language spec), if another IHV decides that they want hyperbolic trig functions implemented directly in hardware, or designs a new texture fetch operation which can output 4 point samples without bilinear filtering instead of a single lerp'ed sample, there is nothing preventing them from implementing those features in their profile(s).
 
Xmas it is related..thx. ;)

You wondered why ATI would not write profile.. I gave you a reason why..they don't need to as Rendermonkey is their solution..bTW what this thread is about. I do assume you read the .pdf.
ATI will not touch CG with a 10 foot pole...the front end is still owned by Nvidia.
 
they don't need to as Rendermonkey is their solution

No, Rendermonkey is just an IDE that allows you to visually see shaders while you are editing them, and an XML format for describing shader parameters.

Rendermonkey _can_ support Renderman SL, DX9 HLSL, and Maya SL through plug-ins; however, none of the SIGGRAPH presentations indicate that those plug-ins exist.

Rendermonkey is better compared to CgFX and CgBrowser, not Cg.
 
Xmas said:
"The choice of a compilation profile is made externally to the language (for example, via a compiler command-line switch)."

There's absolutely no reason why only NVidia could define profiles for Cg.

Well, of course somebody "could" define a profile, but would NVIDIA allow him to extend the Cg language speficication to match his profile, e.g. to allow texture sampling in the vertex shader state or to introduce new data types? I highly doubt this.
 
ATI is a full time member of the ARB, I don't think their vote will be for CG :), especially after seeing what Rendermonkey does..refer to the .pdf pages 2-4..Plugs into DX9 HLSL, OGL2.0 and popular rendering software.
 
gking said:
they don't need to as Rendermonkey is their solution

No, Rendermonkey is just an IDE that allows you to visually see shaders while you are editing them, and an XML format for describing shader parameters.

Rendermonkey _can_ support Renderman SL, DX9 HLSL, and Maya SL through plug-ins; however, none of the SIGGRAPH presentations indicate that those plug-ins exist.

Rendermonkey is better compared to CgFX and CgBrowser, not Cg.

Thats contradicts the .pdf.

And what has been explained to me
 
Doomtrooper said:
ATI is a full time member of the ARB, I don't think their vote will for CG :), especially after seeing what Rendermonkey does..refer to the .pdf pages 2-4..Plugs into DX9 HLSL, OGL2.0 and popular rendering software.

The ARB is democratic, so even if ATI votes against the adoption of the Cg language instead of 3D Labs proposal, it could be accepted.

Though I already see IP claims raising from MS if they try to adpot Cg. Further, I already see Nvidia trying to prevent any changes to Cg, so either Cg=OGL HLSL or Cg remains proprietary.
 
Copyrights apply to the implementation, not the interface. If you make your own Cg derivative/compiler/profile/whatever without infringing on patents IP laws do not apply as long as you dont actually call it Cg (which I assume is a trademark).
 
Status
Not open for further replies.
Back
Top