Jump to content

  • Log In with Google      Sign In   
  • Create Account


Member Since 10 Feb 2005
Offline Last Active Nov 27 2013 11:27 AM

Topics I've Started

iPhone 3D Ball - Github OpenSource

24 November 2013 - 11:18 AM

I've been trying to internalise the 3D APIs for a while, but not having this thing as my main focus makes it really hard.

Perhaps having things out, no matter how simple and silly they are, would help put some steam in my engine.

So here we go: https://github.com/arithma/ios3dball

It's quite simple, and the ball is drawn using a simple shader that allows seeing the rolling of the ball.

You'd need to close the app and open it again in order to reset the balls position.

[Help] Vertex pos/normal/coord

26 June 2012 - 04:09 AM

I'm having trouble sending both normals and a u,v pair to my shaders. If I remove the normal, things work as expected.

It appears the v_normal is receiving the values that are intended for v_coord. I still have no idea though.

I've spent a lot of time trying to figure out, but I really am not able to pick a sane set of actions to debug/experiment anymore.

This is my vertex:

[source lang="cpp"]struct Vertex{ Vertex(vec3 const & v) : pos(v) {} vec3 pos; vec3 normal; real u, v;};[/source]
[source lang="cpp"] const int VERTEX_POS_INDX = 0; const int VERTEX_NORMAL_INDX = 1; const int VERTEX_TEXCOORD_INDX = 2; const int VERTEX_POS_SIZE = 3; const int VERTEX_NORMAL_SIZE = 3; const int VERTEX_TEXCOORD_SIZE = 2; GLuint vbo, ibo; glGenBuffers(1, &vbo); glBindBuffer(GL_ARRAY_BUFFER, vbo); glBufferData(GL_ARRAY_BUFFER, sphere->vertices.size()*sizeof(Vertex), &sphere->vertices[0], GL_STATIC_DRAW); glGenBuffers(1, &ibo); glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, ibo); glBufferData(GL_ELEMENT_ARRAY_BUFFER, sphere->indices.size()*sizeof(unsigned short), &sphere->indices[0], GL_STATIC_DRAW); glEnableVertexAttribArray ( VERTEX_POS_INDX ); glEnableVertexAttribArray ( VERTEX_NORMAL_INDX ); glEnableVertexAttribArray ( VERTEX_TEXCOORD_INDX ); int offset = 0; glVertexAttribPointer ( VERTEX_POS_INDX, VERTEX_POS_SIZE, GL_FLOAT, GL_FALSE, sizeof(Vertex), (void*)offset ); offset += VERTEX_POS_SIZE * sizeof(real); glVertexAttribPointer ( VERTEX_NORMAL_INDX, VERTEX_NORMAL_SIZE, GL_FLOAT, GL_FALSE, sizeof(Vertex), (void*)offset ); offset += VERTEX_NORMAL_SIZE * sizeof(real); glVertexAttribPointer ( VERTEX_TEXCOORD_INDX, VERTEX_TEXCOORD_INDX, GL_FLOAT, GL_FALSE, sizeof(Vertex), (void*)offset ); glBindAttribLocation ( programObject, VERTEX_POS_INDX, "a_position" ); glBindAttribLocation ( programObject, VERTEX_NORMAL_INDX, "a_normal" ); glBindAttribLocation ( programObject, VERTEX_TEXCOORD_INDX, "a_coord" );[/source]
[source lang="cpp"]precision highp float;uniform mat4 u_mv;uniform mat4 u_mvp;uniform vec3 u_light;uniform vec3 u_up;attribute vec3 a_position;attribute vec2 a_coord;attribute vec3 a_normal;varying vec2 v_coord;varying vec3 v_normal;void main() { v_coord = a_coord; v_normal = a_normal; gl_Position = u_mvp * vec4(a_position, 1);}[/source]
[source lang="cpp"]precision highp float;uniform vec3 u_up;varying vec3 v_normal;varying vec2 v_coord;precision highp float;uniform vec3 u_up;varying vec3 v_normal;varying vec2 v_coord;void main(){ vec2 coord = v_coord; vec3 normal = v_normal; coord.x = mod(v_coord.x * 5.0, 1.0); coord.y = mod(v_coord.y * 5.0, 1.0); gl_FragColor = vec4 ( mod(coord.x*1.0,1.0), mod(coord.y*1.0,1.0), mod(normal.z*5.0,1.0)*0.0, 1.0 );}[/source]

Book Recommendation: Vector and Tensor Analysis with Applications?

21 July 2010 - 09:32 PM

I have this dover book, but I read somewhere online that it uses some old notation and that recently there has been rise for a different notation (I believe differential notation) that is more widely used in the other literature (physics specifically). I haven't been able to pin point another alternative book with this book's coverage.

All help is appreciated.

Is my CV good enough

17 July 2010 - 10:13 PM

So I was preparing my CV lately for a graphics position (but not in a game studio).
Mohammad Skafi's CV

Would it resonate with employers at least so that I can come out as a viable option in entering the industry (not as tester, but I won't expect being senior either)?

I believe that sending CV's to a company is a one time trial, that's why I need to know my odds are high so that the chance is not lost eternally.

Your advice is highly appreciated

A bunch of beginner questions

03 July 2010 - 12:51 AM

So I'm new to the OpenGL world. I recently made an OpenGL ES 2.0 demo that worked on the now discontinued AMD emulator.
I ported it into OpenGL, and all shit ensued upon me.

The demo can be found here: download.

Questions follow:
- I am using freeglut + glew. The dlls are being packaged with the application. Is that the way to go?

- I wrote a shader that worked top notch for the OGLES demo. After I updated my graphics driver (now on [OGL 3.3] and [GLSL 3.3]), everything works fine. I can't test what happens when I have earlier versions of OGL and company. Is there a way to run an application in an earlier context for testing?

- On some machines, the shaders got compiling without a glitch, on others it spit out all sort of monstrous compiling errors. How can I make sure that the target platform matches the requirements? What can I do to make sure that the shaders I write are restricted to a certain language version?

- Is it possible, while although I put the line: #version 110 in the vertex and fragment shaders, that the compilation will still go wrong (though it ran well on my own machine)?