-
Advertisement

StiNKy
Member-
Content count
63 -
Joined
-
Last visited
Community Reputation
144 NeutralAbout StiNKy
-
Rank
Member
-
Thanks haegarr and someusername, very helpful!
-
Hi all. I'm having a bit of a problem figuring this out. Given that I have unit vector A, how can I find Quaternion Q which will rotate that vector to the direction of unit vector B? I tried making a Quaternion version of vector A by copying in the xyz components and setting the scalar to 0, and the same with vector B. And depending on the dot product between vector A and B I did one of the following: Quaternion Q = Conjugate(Quaternion A) * Quaternion B or Quaternion Q = Quaternion B * Conjugate(Quaternion A) I'm not too sure if this is the best, or even correct approach? Can anyone give me some advice? Thanks in advance.
-
Yay I've figured it out. After going through the OpenGL GLSL manual, I noticed this definition: syntax: float length (genType x) description: Returns the length of vector, i.e., sqrt(x[0]*x[0] + x[1]*x[1] + ...) Naturally, gl_Vertex is a 4D vector, so normalizing it requires the length, which would return: sqrt(x*x + y*y + z*z + w*w) How very irritating that is...
-
Actually, not declaring texture co-ordinates still has the cube textured, just the texture co-ordinate 0,0 (I think it's 0,0) is mapped to every vertex. So if you see strange discolouration, it's because of that ;)
-
Radius :P But technically it shouldn't matter since normalize() would be doing it's job... What's even MORE strange is if I put a sphere with radius 50.0 in, the results are fine!
-
That's exactly my point. The length already is = 1, so normalize() technically shouldn't be doing a thing, but for some reason it is. I don't quite understand you when you say "all the colour values summed up are going to equal 1.0f"? Do you mean for the fragment? Oh and no I don't have alpha blending enabled :P
-
Hi. I've just recently dived head first into Cg and GLSL, and a small issue has popped up for me. I'm putting a unit sphere through the vertex shader, here's the shader: void main() { gl_Position = ftransform(); gl_FrontColor = normalize(gl_Vertex); } Now the output (tested in RenderMonkey and my own engine) is rather odd. You'd THINK you'd see a sphere with bright colours at the axis-extremeties, but instead I see dimly lit sphere. If I remove the "normalize(..)" and just have "gl_Vertex" I get what I'm supposed to see. My question is this: why on earth is normalize() cutting the vertices from the unit sphere so dramatically, it *should* have no effect on the vertices. Thanks in advance.
-
Well, show us your code :)
-
I think you've got some things a little mixed up here. Alpha testing is a way of drawing parts of a texture that are over (or under) a certain limit, specified by you the developer. You set it with: glAlphaFunc(<Testing function>, <reference value>); And enable it with: glEnable(GL_ALPHA_TEST); Blending is a totally different issue. You may want to look at glBlendFunc(). As for the code examples, where on earth did you get glEnable(GL_GREATER, 0) from?
-
OpenGL MSDN seems to give glTexCoordPointer 5 parms
StiNKy replied to gerbenvv's topic in Graphics and GPU Programming
Woops, didn't notice that. Obviously I just looked at the declaration. -
OpenGL MSDN seems to give glTexCoordPointer 5 parms
StiNKy replied to gerbenvv's topic in Graphics and GPU Programming
The link provided shows 4 parameters. All gl*Pointer commands USED to have five parameters, glTexCoordPointer used to be: void glTexCoordPointer( GLint size, GLenum type, GLsizei stride, GLsizei count, const GLvoid *pointer ); They removed the count parameter. -
Ah ok. Thank you both!
-
Hi all. Quick question: Giving that OpenGL lets you choose between float and double when specifying functions like glRotate/glTranslate/glLoadMatrix, which precision do you think it actually stores the projection/model matrix with? Thanks in advance.
-
Ah, thanks for that, although I have a few follow up questions: I downloaded quite a few "free 3ds models" and they all pretty much had multiple objects out of alignment, it became so frequent it's obviously caused this thread! I actually don't have access to any version of 3d studio max, so is there any chance you can describe "3d studio axis alignment"? I've been toying with it for quite a while now, and have found that if I scrapped most of the vectors except the last one, the translation vector, and if I inverse it, I get some pretty interesting results: 1.0f 0.0f 0.0f -[ 9] 0.0f 1.0f 0.0f -[10] 0.0f 0.0f 1.0f -[11] 0.0f 0.0f 0.0f 1.0f It tends to fix quite a lot of the issues I have with some 3ds models, but definatly not all of them. But I still don't have a clue what to do with the first three vectors...
-
I've been having some small problems writing my own 3DS file loader. I have all the basics down, vertices, faces, texture co-ordinates. But my problem arises when I have multiple objects. Basically it seems like most of the objects are out of alignment with each other. See screenshot here: http://img476.imageshack.us/img476/6531/3dsshot6vb.jpg (Please ignore the dodgy texturing, the model came from a "free 3ds models" site) What I think the correct fix is the 0x4160 chunk, the local axis chunk: 4 x 3D float vectors. Of which I have absolutely no idea how to properly parse to the renderer. I've tried mapping it to a matrix like so (OpenGL btw): [ 0] [ 3] [ 6] [ 9] [ 1] [ 4] [ 7] [10] [ 2] [ 5] [ 8] [11] 0.0f 0.0f 0.0f 1.0f But obviously with little success. So my question is this: Is it indeed the 0x4160 chunk which can fix this? Or am I totally of course? Or am I just parsing the 0x4160 chunk incorrectly? Thanks in advance.
-
Advertisement