• Content count

  • Joined

  • Last visited

Community Reputation

101 Neutral

About anindie

  • Rank
  1. OK. I gave up bumpmaping. Cause I am trying to do all these calculation in real time, on a iphone. [img][/img] Not going to happan. Thanks for all. I am writing bit of my shader code, for those who are interested. I hope its correct :?). It seems to working; but as I said before generated normalmap is not smooth. vec3 normal= texture2D(heighttexture, gl_TexCoord[0].xy).xyz; normal.r=dFdx(normal.x)*50.0; normal.g=dFdy(normal.y)*50.0; normal.b=0.0; float z = abs(normal.r)+abs(normal.g); if( z > 1.0 ) { normal.rg/=z; } float blue = 1.0-length(normal); normal=normal*0.5+0.5; normal.b= blue; This is another code that I tried, generates smooth normals, it makes again expensive. const float width=0.01; const float strength=1.0; vec3 nomralfrombump(sampler2D atex,vec2 textcoord) { vec4 heretex = texture2D(atex, textcoord.xy); if(heretex.a == 0.0) return vec3(0.0,0.0,0.0); vec2 dus= vec2(textcoord.x+width, textcoord.y); vec2 dvs= vec2(textcoord.x, textcoord.y+width); vec4 du4 = heretex - texture2D(atex,dus); vec4 dv4 = heretex - texture2D(atex,dvs); du4.x=du4.x*strength; dv4.x=dv4.x*strength; float z = abs(du4.x)+abs(dv4.x); if( z > 1.0 ) { du4.r/=z; dv4.r/=z; } float dw = sqrt(1.0-du4.r*du4.r - dv4.r*dv4.r); vec3 normal=vec3(du4.x*0.5+0.5,dv4.x*0.5+0.5,dw); return normal; }
  2. Ok. let me explain. I started with programmaticality generating height map of my scene. Its straight forward. I am rendering small height sprites to the fbo. glBlendFunc(GL_ONE, GL_ONE). With additive function I get fairly nice heightmap. In order to use these heightmap. I am converting it to normalmap. programmability using a shader. color.r=dFdx(color.r) color.g=dFdy(color.g); But this operation is hell of expensive and normal where not smooth. Now I want eliminate the hieghtmap and directly trying to generate normal map. (Using normal sprite?). However It seems that normals does not add up. Feels like I should drop the idea..
  3. Hi, I am trying to generate and merge normal map in runtime. I stuck upon adding rgb pixels of normal map. Since opengl stores texture values in unsigned int format. I need to add texels signed. glBlendFunc(GL_ONE, GL_ONE). Doesnot help Exact combining is required is ((R1-127)+(R2-127))+127 How can I acomplish this. (Using blendequations) Thanks