• Announcements

Archived

This topic is now archived and is closed to further replies.

OpenGL Opengl and Vertex and Pixel Shaders

Recommended Posts

I was checking nvidia site to get some info on how to run vertex and pixel shaders on the opengl SDK (Great stuff! a must download for any developer!) BUT.. I currently have a nvidia riva tnt2 (dont worry I already ordered my geforce 2 it should arrive in a month or two) and It doesnt say anything about how to use vertex shaders in a card without hardware support for it, is there a way to use this shaders in my riva at least for testing?

Share on other sites
Correct me if I am wrong, but I don''t believe that OpenGL has "vertex and pixel shaders" like you would in Direct3D. So that could be your problem right there

------------------------------
Trent (ShiningKnight)
E-mail me
OpenGL Game Programming Tutorials

Share on other sites
I think there is something similar but the reason you can't get it in software is because it is not standard OpenGL, rather it is an extension which will only work if your current video card driver supports it. You will need to test for hardware support and if it is there, use the shader, if not use another method.

Anything that is standard OpenGL it will automatically switch to software rendering if the card does not support it.

Seeya
Krippy

Edited by - krippy2k on June 28, 2001 1:36:35 AM

Share on other sites
OpenGL does have vertex and pixel shaders, they are accessible via extensions. Pixel shaders arent accessible unless your hardware has support for them, but Vertex programs (ogl equiv of vertex shaders) are emulated by the drivers for older geforce cards (not sure about TNT cards).

Share on other sites
DX8 has some software support for this. Vertex shaders is pretty OK in sw but I think that you can get some big slowdowns compare to fixed functions. Pixel shaders is hopeless without the proper hardware.

In OpenGL is vertex programs the same as vertex shaders for nvidia cards. I think "texture shaders" is used instead of "pixel shaders". ATI and others is working on an extension with functions instead of the assembly language used in the original vertex shaders.

You need a GF3 for full hardware support. Any GeForce can also be used with OpenGL but some features will be emulated.

Share on other sites
Correct me if I''m wrong, but can''t anything be software emulated? Pixel shadding (im assuming this means bump-maps) would be very easy in software. You would have a little equation for the angle the pixel should be shaded for, based on its surrounding pixels'' heights. I can''t describe it all right here, not without some diagrams, but I''m going to write an article about it now so I can work out all the details. This will be a nice project.. If you want to read it email me and I''ll tell you when its done. I''ll do it tomorrow.

Share on other sites
Ok here is what I got:

If the values for the map at all the pixels around the current pixel is A through H, starting from the top-left and clockwise from there, the angles on the X axis and Y axis can be found with these equations:

Y = (H - D) + (C - G)/2 + (A - E)2
X = (B - F) + (C - G)/2 + (A - E)2

either I am horribly wrong for a genius cause I just scribbled a few things down and got that in about a minute.

You can use the light angles on this data to get the bumps.

Share on other sites
Yes, well you can emulate just about anything you want using software if you write the code. Doesn''t necessarily mean it will be fast enough to be useful though.

Seeya
Krippy

Share on other sites
I suggest you go read up on pixel shaders @ nVidia''s developer site for a proper explanation of what they are. They are a damn lot better than bump mapping alone, thats for sure.

• Partner Spotlight

• Forum Statistics

• Total Topics
627657
• Total Posts
2978466
• Similar Content

• Both functions are available since 3.0, and I'm currently using glMapBuffer(), which works fine.
But, I was wondering if anyone has experienced advantage in using glMapBufferRange(), which allows to specify the range of the mapped buffer. Could this be only a safety measure or does it improve performance?
Note: I'm not asking about glBufferSubData()/glBufferData. Those two are irrelevant in this case.
• By xhcao
Before using void glBindImageTexture(    GLuint unit, GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum access, GLenum format), does need to make sure that texture is completeness.
• By cebugdev
hi guys,
are there any books, link online or any other resources that discusses on how to build special effects such as magic, lightning, etc. in OpenGL? i mean, yeah most of them are using particles but im looking for resources specifically on how to manipulate the particles to look like an effect that can be use for games,. i did fire particle before, and I want to learn how to do the other 'magic' as well.
Like are there one book or link(cant find in google) that atleast featured how to make different particle effects in OpenGL (or DirectX)? If there is no one stop shop for it, maybe ill just look for some tips on how to make a particle engine that is flexible enough to enable me to design different effects/magic
let me know if you guys have recommendations.
• By dud3
How do we rotate the camera around x axis 360 degrees, without having the strange effect as in my video below?
Mine behaves exactly the same way spherical coordinates would, I'm using euler angles.
Tried googling, but couldn't find a proper answer, guessing I don't know what exactly to google for, googled 'rotate 360 around x axis', got no proper answers.

References:
Code: https://pastebin.com/Hcshj3FQ
The video shows the difference between blender and my rotation:

• By Defend
I've had a Google around for this but haven't yet found some solid advice. There is a lot of "it depends", but I'm not sure on what.
My question is what's a good rule of thumb to follow when it comes to creating/using VBOs & VAOs? As in, when should I use multiple or when should I not? My understanding so far is that if I need a new VBO, then I need a new VAO. So when it comes to rendering multiple objects I can either:
* make lots of VAO/VBO pairs and flip through them to render different objects, or
* make one big VBO and jump around its memory to render different objects.
I also understand that if I need to render objects with different vertex attributes, then a new VAO is necessary in this case.
If that "it depends" really is quite variable, what's best for a beginner with OpenGL, assuming that better approaches can be learnt later with better understanding?

• 10
• 12
• 22
• 13
• 33