• Content count

  • Joined

  • Last visited

Community Reputation

146 Neutral

About C0dR

  • Rank

Personal Information

  • Interests
  1. I would like to introduce the first version of my physically based camera rendering library, written in C++, called PhysiCam. Physicam is an open source OpenGL C++ library, which provides physically based camera rendering and parameters. It is based on OpenGL and designed to be used as either static library or dynamic library and can be integrated in existing applications. The following features are implemented: Physically based sensor and focal length calculation Autoexposure Manual exposure Lense distortion Bloom (influenced by ISO, Shutter Speed, Sensor type etc.) Bokeh (influenced by Aperture, Sensor type and focal length) Tonemapping You can find the repository at https://github.com/0x2A/physicam I would be happy about feedback, suggestions or contributions.
  2. Unity-like transform component

    Anyone? I currently really have problems with the rotation part. I would like to create the rotate function like unity, so that i can tell in which orientation to rotate. (world or local). But I dont know how to do that.
  3. Unity-like transform component

    I actually wanted to do the exact same thing as tuccio. I used glm (since I'm using OpenGL). This is how far I came: http://pastebin.com/xGfcYq0n (.h file) http://pastebin.com/xk1LzXJi (.cpp file) But it still doesnt provide all needed funtionality, for example I dont know how to implement scaling now. Some parts of the copy comes from google, so I also dont know if there is a better way to do it. Maybe we could build something useful together?
  4. A Simple and Practical Approach to SSAO

    For deferred rendering just render your normals in viewspace. For example in GLSL (vertex shader):   vec3 normals = ModelViewMatrix * vec4(iNormal, 0);   And a depth buffer in viewSpace. For example in GLSL (fragment Shader):   vec3 depth = gl_FragCoord.z / FarClip;   FarClip is the far clipping value of your viewPort/Camera. For example 1000.0f   Then reconstruct the Position in viewSpace with this function in the SSAO pass (fragment shader):     vec4 R5_clipRange = vec4(NearClip, FarClip, NearClip * FarClip, FarClip - NearClip);   float GetDistance (in sampler2D depthTexture, in vec2 texCoord) { return texture2D(depthTexture, texCoord).r * R5_clipRange.w; } vec3 GetViewPos (in sampler2D depthTexture, in vec2 texCoord) { float depth = (R5_clipRange.y - R5_clipRange.z / (GetDistance(depthTexture, texCoord) + R5_clipRange.x)) / R5_clipRange.w; vec4 pos = vec4(texCoord.x, texCoord.y, depth, 1.0); pos.xyz = pos.xyz * 2.0 - 1.0; pos = InvProjMatrix * pos; return pos.xyz / pos.w; }
  5. Ah yes the glGetError(); comes from copy & paste   Yes i already checked the framebuffer completeness and it says its complete.   Actually I already setup the gbuffer in an other project and it worked. But in that project i mainly used the fixed pipeline functions. So now i tried to implement it in my actual project, which uses modern opengl with custom matrices etc. Most of the code is just copy and paste, only uniforms and some variables and stuff  were adapted. Thats why I'm so confused. I bet its a really stupid fail of myself in adapting the one project into the other. I also tried to change the old mesh render methods (glNormalPointer, glVertexPointer etc) in the test project to vertex buffer object rendering and changed the shader so it uses locations instead of gl_FragData and it still worked. Now actually only the custom matrices (and some minor stuff) differ from the main project. I dont get it, maybe i shall upload the whole project somewhere for you? I bet the error lies somewhere where i cant see it    Well, when nothing works then i think i have to adapt the actual project to the test project part by part to see which of it causes the error 
  6. Ok, so i changed the framebuffer creation to: glGenFramebuffers(1, &fbo); glBindFramebuffer(GL_FRAMEBUFFER, fbo); [...] glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, bufferTextures[GBUFFER_TEXTURE_COLOR],0); [...] But it still doesn't work :( In an other project with fixed pipeline functions it worked, but there i also draw the meshes with other functions ( glVertexPointer, glNormalPointer, glTexCoordPointer etc ). Maybe here lies the problem?
  7. Hello, i currently have a problem with my GBuffer. I draw to 3 textures in a Framebuffer object and then tried to show them with glBlitFramebuffer but i just dont see anyting. Even if I set everything to white in the shader the screen still stays black. I am rendering my meshes with a vertex array object. Here you can find how i setup everything: http://pastebin.com/BAiGeAPC Am i making anything wrong in general or is there just a simple logical fail like forgot something to call? greets C0dR
  8. Hello,     I am currently working on a student research project and have to develop a simple lemmings game. My world is made of 3D meshes and my lemmings are simple flat meshes made of 4 vertices with textures on it (kind of 2D sprites in 3D world).   Currently I am working on the collision detection but cant get it working. I assume you know how lemmings is working, so i need to detect wether the lemmings are on the ground or colliding with a wall. I also need a ramping functionality, so i can have uneven grounds.   For collision detection i made a simple mesh in a 3D program and set it a special name (beginning with COLL_). But I just cant figure out how to get the collision detection working. I already tried the solution from here http://www.discoverthat.co.uk/games/xna-triangle.htm but its not working properly for me since I cant really detect wether the lemmings are colliding with a wall or the ground. So I also tried to seperate the collision meshes in ground meshes and wall meshes, but now when the lemmings are not colliding with the ground anymore ( walking over a cliff) they make some kind of curve and are not directly falling to the ground. I already checked if I move them horizontally before letting them fall but thats not happening. I think the problem is the BoundingSphere, since its round and not quadric? Well, should i just try simple boundingBoxes instead of Meshes? But then i couldnt get ramps right?     Could anyone post a solution or give me some tips? I just have 2 Weeks left and dont even have the game mechanics ready     greets C0dR     P.S. I am german so bear with me