Pandora Tincs - Multiplayer Shooter For Pandora (video)


Heads up to darkblu for this. Giovanni, the cubes you gave me didn't have their smoothing groups properly set up. Basically, you select each face, and hit P to split it into a different mesh.

The two cubes and floor in the green circle have had their smoothing groups set up correctly. The one on the top right hasn't. This is only really a problem with cubes, everything else seems to work ok, but if you've got crates or a large cuboid for the floor, watch out for this one! The one in red, is just a basic cube created in blender and exported without modification.

Also, with more stuff done in the fragment (pixel) shader, it's a bunch prettier. Thanks for the tip on that darkblu ;)

25ialph.png
 
Last edited by a moderator:
Thank you for the help. If I have to add a cube in my maps it will be useful.
Sorry for the cubes. I really didn't know what a smoothing group was :) .
If it can help you I finished a simple specular map for the cyberpunk gun and I'm working on a bump one :) .
I'll upload them later or tomorrow.

P.S: @ GPSchnyder
Good music, thank you.
I would like classical music thought maybe during videos, I know it doesn't fit wery well with FPS but (I think someone posted an example on this forum) you should see the effect of bomb explosions with a relaxing classical theme in the background (I had a tiresome day... I can be delirious)
 
Last edited by a moderator:
'giovanni' said:
P.S: @ GPSchnyder
Good music, thank you.
I would like classical music thought maybe during videos, I know it doesn't fit wery well with FPS but (I think someone posted an example on this forum) you should see the effect of bomb explosions with a relaxing classical theme in the background (I had a tiresome day... I can be delirious)
Yeah. In Videos I also like Classical Music. Of a Jazzy one:
CODE
http://vimeo.com/3438210


And I can also produce something Classic Music for the Videos if there is no one else to do it :) .

'Butterman' said:
I like the music, some talent you've got there. We definitely need to mix it depending on the current pace, rather than the system you've created, what about a sound change when combat starts? We would have to test them both out, see which one works best. Music makes all the difference in an FPS, Half-Life 2 pulled it off perfectly, you would have times with almost no sound, that fit the scene perfectly, then, you would get in a huge battle and some really fast rock/dance would come on. It really changed the atmosphere.
Thanks. The sound will become more focused when the backstory is chosen.

The System you mentioned would also work, just use the Power Channel when the fight starts and take the other ones for the various places. But imho this just works in a scripted environment. If you start the music to soon you'll know that someone will kill you. ;-)

I'll do a mix for the various channels and we can test it out.

'Butterman' said:
Yeah, I like the idea of having just a forum rather than a wiki. But I think we should just continue to use the Jottit along side the forum, the Jottit is full of ideas and collaboration, it's becoming a good knowledge base.
No Problem, we'll just put a link online to there. Or we put the stuff from over there into the Forum also...

George
 
Last edited by a moderator:
*sigh*, hoped to have a nice video of me flying about a map i made, all lit up with pretty lighting, but i can't sort a few shader problems i have out.

looks like i'm gonna just play some Empire Total War, which, by the way is frikkin awesome.
 
Last edited by a moderator:
Attempting to put the light into world space, right now it seems to be attatched to the camera. No combination of matrix multiplications seems to do anything.

CODE
//TINCS Vertex Shader

varying vec3 normal;
varying vec3 halfV;
varying vec3 lightVertexVec;

//I get my eyeDIR (eye direction vector, for specular) and lightPOS (light position vector) from the APP
uniform vec3 eyeDIR;
varying vec3 lightPOS;

void main()
{
lightPOS = vec3(1,4,1);

//I need the world position of the vertex, so i can get a direction vector between it and the light
vec3 calculatedVertex = gl_ProjectionMatrix * gl_ModelViewMatrix * gl_Vertex;

//I need the light-vertex vector, to grab direction and distance off
lightVertexVec = (vec4(lightPOS.x, lightPOS.y, lightPOS.z,0) * gl_ModelViewMatrix) - calculatedVertex;

//Make sure everything that needs to be applied to the normal is
normal = normalize(gl_NormalMatrix * gl_Normal);


//We only need one set of vertex co-ordinates
gl_TexCoord[0] = gl_MultiTexCoord0;

//Optmized setting of position
gl_Position = ftransform();
}
 
'Butterman' said:
Attempting to put the light into world space, right now it seems to be attatched to the camera. No combination of matrix multiplications seems to do anything.

it does not just "seem" - it _is_ attached to the camera. from your code:

CODE
lightVertexVec = (vec4(lightPOS.x, lightPOS.y, lightPOS.z, 0) * gl_ModelViewMatrix) - calculatedVertex;

the temporary vec4 that you create is a direction-vector as its homogeneous component (w) is 0. it will never move one quantum under any homogeneous transformation. you need a position-vector (w = 1.f) if you want it to participate in translations (which you do).

also, in that same computation, dont use transpose multiplications - you never know "how orthonormal" your model-view matrix is - use the system-provided inverse.
CODE
vec3 calculatedVertex = gl_ProjectionMatrix * gl_ModelViewMatrix * gl_Vertex;

dont send that vertex to clip space - it has nothing to do there - you do your lighting in view space, so the above should read "calculatedVertex = gl_ModelViewMatrix * gl_Vertex;"

also, you dont need to pass your viewer position from the app - viewer`s postion is the origin of your view space, by definition. each of your vertices in view space gives you a vertex-to-viewer vector, when taken with inverse sign, i think i already mentioned this last time we discussed the shader.

so, to recap:

* you want to compute your lighting in view space
* for the purpose you need your normal, to-light-source and half-dir vectors in view (aka eye) space, and passed as such to your fragment shader.
* particularly about your to-light-source vector - pass it non-normalized to your fragment shader, so you can use its lenght then to compute proper attenuation per-pixel.

* there is no reason (bar driver bugs) why you should not be able to pass a uniform for the light pos, but anyway, you can use the system-provided fixed-pipeline lighting data - gl_LightSource[].position, etc, given your app bothers to update those. of course that will not work under gl es2.

ps: i hope you were not trying to access lightPOS from the app in its current for:
CODE

varying vec3 lightPOS;



the above needs to be a uniform.
 
Last edited by a moderator:
Yeah, I turned it back into a varying variable, I was worried that somehow I was still effecting it. Anyway, I made your modifications and some more and fixed it. I've still got one problem.

262xyky.png


As you can see, the light on the floor isn't right at all. I've had this problem from the start. I thought it was to do with the way I was multiplying the matricies, but the light works fine on the cubes that are closer, so, it's gotta be somthing to do with the distance? or possibly screwed normals on that cube?

also, is the inverse of gl_ModelViewMatrix, gl_NormalMatrix?

EDIT: The sphere is the light!
 
Last edited by a moderator:
'Butterman' said:
Yeah, I turned it back into a varying variable, I was worried that somehow I was still effecting it. Anyway, I made your modifications and some more and fixed it. I've still got one problem.

<snip>

As you can see, the light on the floor isn't right at all. I've had this problem from the start. I thought it was to do with the way I was multiplying the matricies, but the light works fine on the cubes that are closer, so, it's gotta be somthing to do with the distance? or possibly screwed normals on that cube?

could be screwed normals. could be the shader too.

btw, regarding shader verification - you can use ATIs render monkey - it is a quick shader prototyping tool. you can type in shader code, define uniforms, define textures and gl render state - practically everything one needs for prototyping. once you get your shader to work in render monkey you can try then to change back that variable to a uniform and try to figure out why it is not updated - check any gl error codes carefully.

QUOTE

also, is the inverse of gl_ModelViewMatrix, gl_NormalMatrix?
no, gl_NormalMatrix is the inverse-transpose (i.e. transposed inverse) of the ModelView. generally, when you transform normals (vs. vertices) you use the transposed inverse of the matrix you use for the vertices.
 
Last edited by a moderator:
*sigh*

Lack of pre-planning accompanied by a boom in coding output has lead to this week being spent mostly cleaning up problems and fixing bugs. I wish I could allocate more time to getting these shaders done.

Maybe next week.
 
This is looking great. I'm eagerly awaiting this game, thank you to all involved!
 
Last edited by a moderator:
'Mithrildor' said:
When is the poll?
I know I promised it today, but it's going to have to wait, I've been very busy this weekend. I'll probably put it up tommorow evening and we will run it through to Saturday.

'David Bowman' said:
This is looking great. I'm eagerly awaiting this game, thank you to all involved!
Thanks. ;)
 
Last edited by a moderator:
We've got a small forum to organise ourselves on. It's hosted here courtesy of gps.

CODE
http://socialnw.code-blocx.de/bbpress/


:D, finnaly, space to stretch our legs.

We really, really need a name for this game :D
 
Last edited by a moderator:
I still suggest the name "Gaunt". :).
 
Last edited by a moderator:
I regged but gschnyder hasn't sent thru a pass yet.
 
Last edited by a moderator:
Back
Top