3 registered members (Ayumi, AndrewAMD, TedMar),
1,016
guests, and 2
spiders. |
Key:
Admin,
Global Mod,
Mod
|
|
|
Re: Enough is Enough
[Re: Matt_Aufderheide]
#46625
05/28/05 21:00
05/28/05 21:00
|
Joined: Sep 2004
Posts: 1,214 Austin, Texas
Josh_Arldt
Senior Developer
|
Senior Developer
Joined: Sep 2004
Posts: 1,214
Austin, Texas
|
Quote:
But what i wonder is that some people think that shaders are somehow A6 specific, and therefore require A6-based tutorials.
It's probably because they never looked at the pinned topics and other peoples shaders to see how easy it is to get a shader set up in A6.
|
|
|
Re: Enough is Enough
[Re: Josh_Arldt]
#46626
05/28/05 23:03
05/28/05 23:03
|
Joined: Sep 2003
Posts: 5,900 Bielefeld, Germany
Pappenheimer
Senior Expert
|
Senior Expert
Joined: Sep 2003
Posts: 5,900
Bielefeld, Germany
|
We should close this thread now! I don't think that Matt, Steempipe, Ello, Alexander Esslinger, Oliver, Rhuarc, Rigoletto, Ventilator, Drew and so on didn't contributed and helped less in shaders than others did in other subjects as modelling and coding.
I continuesly had a look at the discussions in the shader forum right from its beginning. There already IS a nice collection of shaders. IMO it would be nice to see them placed and updated in the wiki, that would make the things less confusing. And several questions might be repeated less often.
Loco's complaints happened right in the time when Rigoletto built up his first tutorials. Which are great start, that should be supported with sequels, additions and hints - in the wiki!
|
|
|
Re: Enough is Enough
[Re: Yulor]
#46628
05/30/05 14:22
05/30/05 14:22
|
Joined: Oct 2002
Posts: 8,939 planet.earth
ello
Senior Expert
|
Senior Expert
Joined: Oct 2002
Posts: 8,939
planet.earth
|
hey , buy yourself a book: its called "Real Time Shader Programming Using DirectX 9.0" by Ron Fosner when you have it , you'll probably understand why noone writes you a tutorial.. Quote:
Their is no tutorial, that defines exactly how to start working with shaders from the ground up
man, i mentioned this and much other good books shortly after shaders was put into the engine . if you bought on then you wouldnt behave like you do know;P
Last edited by ello; 05/30/05 14:25.
www.earthcontrol.dequoted: We want to maintain a clean, decent, American family suited forum look... which means you may post zombies or chainsaw massacres, but no erotic.
|
|
|
Re: Enough is Enough
[Re: Matt_Aufderheide]
#46629
06/02/05 01:40
06/02/05 01:40
|
Joined: Nov 2003
Posts: 523 Whitehorse, Yukon, Canada
Paul_L_Ming
User
|
User
Joined: Nov 2003
Posts: 523
Whitehorse, Yukon, Canada
|
Quote:
I just dont see what's so hard about searching for basic info on the the web.. Wolfgang Engle has some very good shader tutorials up, better than any you would find here.
Hiya.
I think the reason why a good tutorial about it needs to be done is because this is for 3D Game Studio people. Not Joe Blow who works for iD Software, not Sally Someone who develops stuff with Valve...but us, the loyal and fun-loving folks who make up the vast majority of 3DGS's community.
[SARCASM] Why are there tutorials for using MED? After all, there are a billion tutorials about how to model in 3d on the web. Why the tutorials about basic animation? I mean, there are billions of tutorials, information and tips n' tricks for doing that stuff on the web. Why do we have tutorials on how to design levels? Just search the web, there are billions of tutorials and informative sites that go into level design. [/SARCASM]
The point isn't whether or not you can find information about Subject X on the internet. The point is that, as it stands, there isn't really and "good, consistant and walk-you-through-it-all" tutorials for 3DGS dealing specifically with how to make, manipulate and use shaders and whatnot. A lot of people use 3DGS for fun, or for "quick prototyping"...they don't have time (or maybe desire) to spend the next 6 months learning about programming in HLSL in order to add a water shader to their demo level.
Well, that's my 2¢ on the matter. As an artist, all I'm really inerested in is how/where do I use shaders (and I *still* havn't figured that one out! ).
^_^
"We've got a blind date with destiny...and it looks like she's ordered the lobster."
-- The Shoveler
A7 Commercial (on Windows 7, 64-bit)
|
|
|
Re: Enough is Enough
[Re: Paul_L_Ming]
#46630
06/02/05 01:51
06/02/05 01:51
|
Joined: Oct 2003
Posts: 4,131
Matt_Aufderheide
Expert
|
Expert
Joined: Oct 2003
Posts: 4,131
|
Quote:
there isn't really and "good, consistant and walk-you-through-it-all" tutorials for 3DGS dealing specifically with how to make, manipulate and use shaders and whatnot
Maybe that's becasue there is no real A6 specific techniques to use shaders. Of course there are some technical things, but it's all in the documentation. The main thing is that you can find info on the FX format anywhere, and that's what A6 uses.. it's a common directx framework for material effects. My simple HLSL tutorial is a sticky on this forum.. you should look at that first...it shows you the basics. To write shadrs, you need to know some things about Direct 3D, and thats not somehting that can be covered in a basic tutorial. As far as using existing shaders form the WIKI or the forums, you shouldnt need a tutorial to use them..would you ask for a tutorial on how to declare a variable?
|
|
|
Re: Enough is Enough
[Re: Matt_Aufderheide]
#46631
06/02/05 02:24
06/02/05 02:24
|
Joined: Oct 2002
Posts: 2,256 Oz
Locoweed
OP
Expert
|
OP
Expert
Joined: Oct 2002
Posts: 2,256
Oz
|
Hello,
First, I will say that there is definately a series 3DGS specific tutorials on shaders in the works. Whether they are really necessary or not, definately could be debated for a while. It is my opinion that they are, or I wouldn't have brought it up, but that is just my opinion from trying to learn about shaders on this forum and too much Google'ing, nothing more. For me it is simply that 3DGS has shaders, so there should be some good tutorials here on shaders. 3DGS uses DirectX for multiplayer, so there should be a multiplayer tutorial that bridges DirectPlay with with 3DGS. That's is just the way I feel about it. It really isn't anything personal. It just has more to do with the ease of learning how to implement the features of 3DGS that access external components like DirectX or Shaders through the 3DGS forums. I sincerely hope no one objects to that. Kudos to those who grasp multiplayer, shaders, or something like physics in day, but I just aint that smart. I need as much help as I can get, especially from my friends here, and why not here? I am serious, why shouldn't we have a good tutorial on shaders here? I personally don't understand why we shouldn't. It totally baffles me why anyone would have resistance to a 3DGS specific tutorial on shaders. I just don't get it. I really don't understand it and it bothers me alot, probably too much.
On the otherhand, many bring up a good point though, that tutorials for shaders by people like Wolfgang Engel and others cover the basics shader programming quite well. I would highly recommend Wolfgang Engel for the theory and implemententaion shader code that is accessable over the internet for free. Read up.
Sincerely, Loco
Professional A8.30 Spoils of War - East Coast Games
|
|
|
Re: Enough is Enough
[Re: Matt_Aufderheide]
#46633
06/02/05 04:37
06/02/05 04:37
|
Joined: Oct 2002
Posts: 2,256 Oz
Locoweed
OP
Expert
|
OP
Expert
Joined: Oct 2002
Posts: 2,256
Oz
|
Hi Matt,
Yes, you are correct. I was definately wrong in how I started this topic. That was my mistake. I agree. I apologize.
But that's as far as my apology goes,
Loco
Professional A8.30 Spoils of War - East Coast Games
|
|
|
Re: Enough is Enough
[Re: Matt_Aufderheide]
#46634
06/02/05 04:49
06/02/05 04:49
|
Joined: Sep 2003
Posts: 4,959 US
Grimber
Expert
|
Expert
Joined: Sep 2003
Posts: 4,959
US
|
I don't think there is anything wrong with writting a tutorial on the subject, from the standpoint of a beginner. An introductory document that assumes NOTHING on the writters part.
What i have encounted is every referance pointed to for a beginner to start REALY ISN'T set up/written for a REAL beginner to understand the basics before jumping in feet first with allot of examples that inodate the reader ( closest I found was the HLSL PDF on teh WIKI that was of any beginner help).
Most everyting else realy approachs the user has to already know X ammount. ( don;t read them based on what is contained in the doc, but what is NOT when seen from teh eyes of someone with NO knowlage of even the who, what , where ,when why of shaders)
Shaders may be an very advanced topic, but it doesn't have to be written/explained ONLY in terms to 'advanced' users comprehension.
How to work HLSL WITH 3DGS may be in the manual, but as we all know the manual isn;t usualy clear to the person new to a particular topic and users then struggle with it via trail and error untill the perverbial lightbulb 'DING' clicks on "AH-HA, THAT's how it works!"
Reminds me of ent_move and my struggle understanding how to move an entity using just that instruction.
ONLY place it was documented/explained was the manual. Not in ANY tutorial ( and I seriously digged across the internet for tutorials, docs anything.) Everytime I asked for a brief explination of using it. A Community Stonewall as well. It was like either a closely guarded secret or Knowone could realy explain it. After couple of months I puzzeled it out myself .
I found as I went this was not an uncommon occurance. Much is DOCUMENTED, but not EXPLAINED.
Shaders/marerials seem to be in the same boat. There is much in the way of documentation, what is wrong is EXPLINATION or the lack of actualy.
Explination is a BUILDING process.
example: you can't properly explain how to use ent_move without first explaining what a vector is and he differnt sort of vectors the we uses. that falls back to explaining what a varible is. You have to cover 'scope' and 'relative' in relationship to an entity. you have to cover vector math.
You have to cover eular angles, what they are and are not. how are angles handled in 3DGS game levels and how to do vector angle math.
So the same with shaders/materials. need to go BACK a BASIC level of CORE elements. The fundimental basic parts. Yes plenty of documents on HLSL, what is missing is the EXPLINATION of the 3DGS end of the process. Just can't add an .fx file in your work folder, assign it to an entity like you do with an action and away you go. Not all shaders are even IN fx files, its all scripted.
And that is where the real problem is. We don't need a tutorial/workshop at THIS time on HOW to make particular shaders as stated there are many such documents that float around that just need to be found and transposed to DX9 or some such needs. I don;t think there is anything that CAN'T be taught to someone that has no idea from the beginning. It's all in the matter of approach.
Now, looking at the documents users HAVE provided for help ( forum threads, WIKI posts) by reading them they do give some explinations, but from an introductory level invividual they are all a bit over the top.
THis MAY be allot of work, especialy to those that understand the workings already ( easier to understand then explain in SIMPLE terms) and I also understand some people have the ability to learn something but don't naturaly have the ability to teach it to others.
But such a compiled explination of the workings would:
1. realy cut down on the Q&A of the basics 2. get more people up to a competent UNDERSTANDING level providing a much larger spring board of members for shader workings/projects in the community that can provide better feedback, testing and improvments.
I'm not stating its ANYONEs responsability to write such a document, but it would be far eaiser process if a few experianced users took a couple inexperianced shader/material users that can write tuts from an intro level point of view and guided them through the process of learning the subject and provided feedback on proofreading tuts as they get written.
The more the number experianced/knowlagable users provide input the more the outcome can be in such tutorials. They don;t have to WRITE the tutorial(s) per say but guide a few others lerning from the ground up to a compentent level and provide feedback though the process. The tuts themselves will sort of build themselves from this dialog/learning process.
Give you an example of what I mean:
Lets start from the beginning here. What is a shader.
Myself: I break them down ( from what i know so far) in 3 catagories
Material. Fixed Function. Shader.
Shaders get broken down into 2 basic parts
Vertex. Pixel.
Now as How "i" understand them in simple form:
Material: an advanced way of controling how lights interact with a surface.
We have the basic understanding of using normal 3DGS settigns of like UNLIT, Albedo, Ambient. A material gives you more advanced control on how light interacts with your textures/entitis by allowing you to adjust the ammount of Red Green and Blue light colors either is reflected (albedo), flattened (diffuse), self iluminates ( ambient ) or 'whites out' ( specular/flare).
For example, if you wanted to make something look more metalic you would want to have some reflectivness brighter colors, and diffusion of darker colors ( makes the dark areas look flat) and some specular of whiteish level colors
A fixed function: I don't know the differnace to this but obviously there is else others wouldn;t recomend certain effects to be done by fixed function over a shader equivalent.
Shader: A process where, prior to the engine drawing/updating the video display each frame (render), you grab a specific object, area, chunk, piece of the 3D world represented in a game level. Transpose or convert it's data to a 2 dimensional mapping, then through a process( or multiple processes) manipulate that data such as change colors, move possition, alter how light effects it ( even more than a material) overlay a texture... and the list goes on. That manipulated data is then transfered back into the 3D world enviroment, where the engine then does its process to draw the 3D world data onto the video screen.
Vertex shader: As we know objects are defined in a 3D world by a set of points ( vertexs) that are set in referance to a single point in space ( the origin point). an objects surface is defined by 3 vertex points connected. A vertex shader allows us to manipulate the data(texture surface) between those 3 points in space by referancing those 3 vertexs.
Pixel shader: via the 3 vertex points that define a surface, we can actualy referance an individual pixels x/y/z location between those 3 vertexs points. which allows you to then manipulate the pixels themselves.
Now as a feedback you can correct me how I understand these things. Keep in mind , say that I'm a new 3DGS user, my knowlage of computers is limited ( and you don;t know what I do and do not know). SO avoid teh technical at first. If you ahve to use a technical term ( say like, PIPELINE) give a very brief explination of what that means/is.
The process then contiunes: So I start with the simplest of the above... materials:
A basic matieral is defined via script much like a function, action, panel etc.
You have a data TYPE: MATERIAL You give it a name: user defined name that follows c-script name definition restrictions. and it has a structure: { }
example:
MATERIAL mat_dothis {
}
some of the basic material instructions you can use in this structure:
ambient_red ambient_green ambient_blue
control of how much ambience ( self lit) a surface/object is. values are adjustable range from 0-255 for each of the 3 colors
diffuse_red diffuse_green diffuse_blue
controls how much light is NOT reflected by a surface/object. values range 0-255 for each color
emissive_red emissive_green emissive_blue
color emmited by the material itself and is added to the surface/objects lighting. ranges of 0-255
specular_red specular_green specular_blue
the influace of dynamic lights on the surface/object to create highlights (flares)
power
sharpenss of the specular highlights... range 0-10 power set to 0 turns off specular highlights
albedo
overall influance of SUNLIGHT on the surfance/object range 0-100. 0 not effected by sunlight, 100 sunlight fully reflected off surface, ignores shadowmaps.
so a possible material would look liek this:
material mat_grimber { specular_red = 50; specular_green = 20; specular_blue = 60; power = 3; diffuse_red = 20; diffuse_green = 15; diffuse_blue = 40; }
experianced users comments, pointers, suggestions, additions, corrections
and onward it would go. as it builds further on the tutorial would build itself.
|
|
|
|