The RenderMonkey approach

Ok, I have some questions for ATI.

  1. why is there no option to map different index arrays, even though this is detailed in your document?
  2. The ‘usage’ field in the stream mapping dialog - when you select binormal or tangent, does it generate these at the shader preprocessing stage in your d3d previewer?
  3. (related to 1) what other uses do you see with being able to use different geometry in different passes apart from fur (and glows)?
  4. (related to 1) you automatically generate the fins? or load them in from another model file?
  5. can you please explain the stream mapping dialog to me? for instance, if I select FLOAT4 for my position usage, does it internally create another array of n float4’s and copy the vertices into this?

There’s so much that needs clarifying with this app…

does rendermonkey work with gf2mx?
ive downloaded it + installed it + ran it but all all shaders (i load) give no visual output, i can click on things + change them but get no visual represntation of whats happening
check the docs!
i would luv to but win2000 wont load it without crashing (cant convert graphic format or something)
please whoever writes the docs use something that everyone can read eg pdf,html(better)
http://www.microsoft.com/downloads/searc…=925&Show=Alpha

knackered - i can answer 3 for you…

i am setting up a system like the render monkey one, and i’ve found a good use for the different geometry/different passes idea. i use a specially prepared shadow volume mesh in the stencil buffer pass and then the normal mesh for the shading passes. the shadow volume mesh has extra tris inserted on each edge so i can do shadow volume extrusion totally on the GPU.

also i define 2d, wireframe, 3d, scene editor etc versions of an objects shader, and many of these may need different geometry. for example, in an editor view, you might want to draw something with a sprite icon rather than its mesh… but it’s helpfull to have all the styles for one object controlled from a single file. actually i have one file that defines all the different rendering styles for a given object, and the actual shaders for these styles live in separate files - some models use several shaders, different ones on different sections. the style definition in the first file assigns shaders to groups, based on the material assignments done in the 3d editor.

hope that helps…

I’m all for centralisation, vshader, but I’ve always believed that a shader should describe the rendering of a mesh - shadow volumes are essentially different meshes, whos only relation to the mesh that casts them is at the scene hierarchy level, not the shader level. In other words, I would have thought it better to have a shadow shader which draws the shadow volumes completely seperately from the meshes (not just in a second pass of the original mesh). In my opinion, enabling multiple meshes within a shader is going to be a bit of a performance loss.

yeah - i proabaly wasn’t very clear, but i actually agree with you 100%.

that’s why when i was implementing this render-monkey style system, i split the scripts into two separate entities- a “renderscript” that describes different draw styles for a particular actor, which can involve different meshes for different styles (eg with the “shadow volume” draw style), and a “shaderscript” file that has the shader (and fallbacks) for one mesh (or part thereof) only.

the renderscript describes relationships that only exist at the scene-graph level, really. actually within the system i ended up with a “shader” object being equal to the combination of a compiled shaderscript and a particular bit of geometry. so the same shaderscript bound to two different meshes and compiled equals two different “shaders”… if that makes sense.

Originally posted by knackered:
[b]Ok, I have some questions for ATI.

  1. why is there no option to map different index arrays, even though this is detailed in your document?
  2. The ‘usage’ field in the stream mapping dialog - when you select binormal or tangent, does it generate these at the shader preprocessing stage in your d3d previewer?
  3. (related to 1) what other uses do you see with being able to use different geometry in different passes apart from fur (and glows)?
  4. (related to 1) you automatically generate the fins? or load them in from another model file?
  5. can you please explain the stream mapping dialog to me? for instance, if I select FLOAT4 for my position usage, does it internally create another array of n float4’s and copy the vertices into this?

There’s so much that needs clarifying with this app…[/b]

  1. i can’t find this in the document. perhaps you are confusing stream mapping??

  2. the model loader module is responsible for providing this data to rendermonkey. rendermonkey then builds it’s streams according to the stream mapping you’ve set up.

  3. a “pass” in rendermonkey is just a draw call. if you want to draw two models (each having it’s own shader), each one gets it’s own pass.

  4. which sample are you referring to?

  5. in this case, it would allocate 4 floats in the stream for position. check out D3D’s description of stream mapping for a full understanding of how this works.

i hope this helps! --chris

Originally posted by zed:
does rendermonkey work with gf2mx?
ive downloaded it + installed it + ran it but all all shaders (i load) give no visual output, i can click on things + change them but get no visual represntation of whats happening
check the docs!
i would luv to but win2000 wont load it without crashing (cant convert graphic format or something)
please whoever writes the docs use something that everyone can read eg pdf,html(better)
http://www.microsoft.com/downloads/searc…=925&Show=Alpha

rendermonkey will run on any hardware. however it won’t be very interesting on a gf4mx seeing as this hardware doesn’t support shaders.

the documentation is available as a pdf on the web page: http://www.ati.com/developer/sdk/radeonSDK/html/Tools/RenderMonkey.html

–chris

Originally posted by chrisATI:
1) i can’t find this in the document. perhaps you are confusing stream mapping??

Not the rendermonkey docs, but the “Designing a games shader library for current and next generation hardware”. Is this not based on your rendermonkey library?
I assumed it was, otherwise why recommend and document an approach you don’t use in practice?


2) the model loader module is responsible for providing this data to rendermonkey. rendermonkey then builds it’s streams according to the stream mapping you’ve set up.

So rendermonkey will simply fail if this data is not presented to its stream mapper?


3) a “pass” in rendermonkey is just a draw call. if you want to draw two models (each having it’s own shader), each one gets it’s own pass.

Ok.


4) which sample are you referring to?

The one in the “Designing a games shader library…” document I refer to (above).


5) in this case, it would allocate 4 floats in the stream for position. check out D3D’s description of stream mapping for a full understanding of how this works.

I understand. But this mapping is done at initialisation time?

chris sorry about the b*itch (downloading a huge file like it takes ages for ppl like me with dialup only to find it doesnt work )
anyway i think ive spotted the cause of the error it requires win2000 -> SP2 (which i havent installed + most likely will not install as i hardly ever use windows + remember the grief i got last time i installed a windows os sevrice pack a few years ago)

Not the rendermonkey docs, but the “Designing a games shader library for current and next generation hardware”. Is this not based on your rendermonkey library?

That document was about designing the Shader Library component for a game engine. It was based on the Shader Library we use for our demo engine. RenderMonkey isn’t a Shader Library, it’s a tool for developing shaders. --Chris

…which must use a games shader library architecture, otherwise…well, otherwise you’d have to hard code everything.

OK, so I downloaded RenderMonkey but being suspicious that it might not work.

When I try to run it, I get a missing DLL :
MSIMG32.dll

PLease don’t tell me, but I need IE6 and also DX8.1 to get this running.

OK, I’m begging, please don’t make software that depends on other software. It is extremely ennoying. Next thing you know, it needs Office XP and other MS products because of some OLE crap.

How can I fix it so that DX8.1a is not required and ditto for IE.

When is the linux version due?

V-man

It’s a DirectX8.1 app, vman - how do you suppose ATI could make it:

a) not depend on dx8.1,
b) run on linux

???

You’re being silly now, aren’t you?

Ok, so there is nothing about gl in there??? I thought it was a dev tool for both sides.

I have written a register combiner version of one of the demoes, but I would like to be able to use this thing.

To ATI team : What are the future plans for Rendermonkey?

V-man

knackered, who built your BSOD system together?

You right?

Quit blaming ATI because you can’t lash together a working PC :slight_smile:

What on earth are you talking about, you silly scottish person?

Heh, knackered, I guess you don’t get the joke there. ‘BSOD system’ as in Blue Screen Of Death, you know, WINDOWS; how it likes to give us non-stop BSODs.

Just the other day for some unknown reason, I got a BSOD during boot up, saying something about a driver, yet I didn’t change a single thing. Crazy windows. Oh and the thing is, I got this error before when I installed some gimped drivers for something and of course it was all nice and blue and such. But this time it was black! That is the first time I have ever seen windows give me a BSOD that was black instead of blue. Gimped I say!

-SirKnight

Originally posted by V-man:
[b]Ok, so there is nothing about gl in there??? I thought it was a dev tool for both sides.

I have written a register combiner version of one of the demoes, but I would like to be able to use this thing.

To ATI team : What are the future plans for Rendermonkey?

V-man[/b]

in the pdf on their site they mention a opengl version is planned

Originally posted by SirKnight:
[b]Heh, knackered, I guess you don’t get the joke there. ‘BSOD system’ as in Blue Screen Of Death, you know, WINDOWS; how it likes to give us non-stop BSODs.

Just the other day for some unknown reason, I got a BSOD during boot up, saying something about a driver, yet I didn’t change a single thing. Crazy windows. Oh and the thing is, I got this error before when I installed some gimped drivers for something and of course it was all nice and blue and such. But this time it was black! That is the first time I have ever seen windows give me a BSOD that was black instead of blue. Gimped I say!

-SirKnight[/b]

my dad one time got an RSOD… a red screen… dunno how he got THAT working

and don’t listen to knackered, he had some personal problems with an ati. possibly his girl left him due to a bsod one time, or so… he’s very biased and doesn’t care about real statistical facts, but loves to live in his own clouds where ati is still instable all over the world, hehe

take the red pill, knacky, see that ati works as well as nvidia (and if you follow the current development flow of nvidia, you would not want to get an nv30. they could be instable due production errors )

knackered,

I’m talking about the responsibility of someone who builds a PC to take ownership for that system and make it work. I’ve seen all sorts of issues putting PCs together, one system (with an NVIDIA card!) I could HEAR AGP bus transfers on the AC97 audio channel. Another with an NVIDIA card had all sorts of problems w.r.t. graphics data integrity. I’ve even seen a series of driver updates increase the heat load in my case and cause system instability. A friend bought a spanking new NVIDIA GeForce 4600Ti and had horrible problems. They just couldn’t make it work, it turns out MSI had screwed up the bus mastering on their early boards but shipped the thing anyway. I’m not knocking NVIDIA, it’s just the way PCs are.

My point is that a PC is a complex system with all sorts of electrical emissions inside the case, thermal loads and airflow that can change with a card, bus arbitration and a slew of bios settings that might affect all of the above. You have a multitude of motherboard chipset implementations with different designs and different motherboard layouts with each chipsets. On top of that you have OEMs cutting corners on their graphics card designs and customers buying the cheapest brand on the shelf thinking all are equal (and no real way to tell which is best).

You saying you had problems with ATI cards and particularly you insisting that it’s all the drivers and ATI need to work on their drivers, makes you look like a fool. But OK keep calling me a silly Scot as you make a laughing stock of yourself.

[This message has been edited by dorbie (edited 09-13-2002).]