# Cannot tile texture after parallax mapping [Solved]

i need to tile the texture after the parallax mapping shaders r applied.

but the shader ignores the texture scale…

what should i do?

sry to bump this up, but i really need help on this~~~

thx

Multiply the texture coordinates in the vertex shader by gl_TextureMatrix[0].

Momoko_Fan said:

Multiply the texture coordinates in the vertex shader by gl_TextureMatrix[0].

sry but i really dont know how to do that. can u drop in a few lines plz~

thx

Fine, post the shader and I'll fix it.

Momoko_Fan said:

Fine, post the shader and I'll fix it.

haha~u r the best  :D

```!!ARBvp1.0 PARAM mvi[4] = {state.matrix.modelview.inverse}; PARAM mvit[4] = {state.matrix.modelview.invtrans}; PARAM mvp[4] = {state.matrix.mvp}; ATTRIB tangent = vertex.texcoord[1]; ATTRIB binormal = vertex.texcoord[2]; ATTRIB normal = vertex.normal; TEMP light0pos, light0vec; TEMP light1pos, light1vec; TEMP eyevec, eyevects; TEMP temp; # vector pointing to light0 DP4 light0pos.x, mvi[0], state.light[0].position; DP4 light0pos.y, mvi[1], state.light[0].position; DP4 light0pos.z, mvi[2], state.light[0].position; DP4 light0pos.w, mvi[3], state.light[0].position; SUB light0vec, light0pos, vertex.position; # transform light0 vector into tangent space (DO NOT NORMALIZE) DP3 result.texcoord[1].x, light0vec, tangent; DP3 result.texcoord[1].y, light0vec, binormal; DP3 result.texcoord[1].z, light0vec, normal; MOV result.texcoord[1].w, 1.0; # vector pointing to light1 DP4 light1pos.x, mvi[0], state.light[1].position; DP4 light1pos.y, mvi[1], state.light[1].position; DP4 light1pos.z, mvi[2], state.light[1].position; DP4 light1pos.w, mvi[3], state.light[1].position; SUB light1vec, light1pos, vertex.position; # transform light1 vector into tangent space (DO NOT NORMALIZE) DP3 result.texcoord[2].x, light1vec, tangent; DP3 result.texcoord[2].y, light1vec, binormal; DP3 result.texcoord[2].z, light1vec, normal; MOV result.texcoord[2].w, 1.0; # vector pointing to eye SUB eyevec, mvit[3], vertex.position; # transform eye vector into tangent space (DO NOT NORMALIZE) DP3 result.texcoord[3].x, eyevec, tangent; DP3 result.texcoord[3].y, eyevec, binormal; DP3 result.texcoord[3].z, eyevec, normal; MOV result.texcoord[3].w, 1.0; # regular output DP4 result.position.x, mvp[0], vertex.position; DP4 result.position.y, mvp[1], vertex.position; DP4 result.position.z, mvp[2], vertex.position; DP4 result.position.w, mvp[3], vertex.position; MOV result.color, vertex.color; MOV result.texcoord[0], vertex.texcoord[0]; END ```

Try this:

```PARAM mvi[4] = {state.matrix.modelview.inverse}; PARAM mvit[4] = {state.matrix.modelview.invtrans}; PARAM mvp[4] = {state.matrix.mvp}; PARAM mvt[4] = {state.matrix.texture}; ATTRIB tangent = vertex.texcoord[1]; ATTRIB binormal = vertex.texcoord[2]; ATTRIB normal = vertex.normal; TEMP light0pos, light0vec; TEMP light1pos, light1vec; TEMP eyevec, eyevects; TEMP temp; # vector pointing to light0 DP4 light0pos.x, mvi[0], state.light[0].position; DP4 light0pos.y, mvi[1], state.light[0].position; DP4 light0pos.z, mvi[2], state.light[0].position; DP4 light0pos.w, mvi[3], state.light[0].position; SUB light0vec, light0pos, vertex.position; # transform light0 vector into tangent space (DO NOT NORMALIZE) DP3 result.texcoord[1].x, light0vec, tangent; DP3 result.texcoord[1].y, light0vec, binormal; DP3 result.texcoord[1].z, light0vec, normal; MOV result.texcoord[1].w, 1.0; # vector pointing to light1 DP4 light1pos.x, mvi[0], state.light[1].position; DP4 light1pos.y, mvi[1], state.light[1].position; DP4 light1pos.z, mvi[2], state.light[1].position; DP4 light1pos.w, mvi[3], state.light[1].position; SUB light1vec, light1pos, vertex.position; # transform light1 vector into tangent space (DO NOT NORMALIZE) DP3 result.texcoord[2].x, light1vec, tangent; DP3 result.texcoord[2].y, light1vec, binormal; DP3 result.texcoord[2].z, light1vec, normal; MOV result.texcoord[2].w, 1.0; # vector pointing to eye SUB eyevec, mvit[3], vertex.position; # transform eye vector into tangent space (DO NOT NORMALIZE) DP3 result.texcoord[3].x, eyevec, tangent; DP3 result.texcoord[3].y, eyevec, binormal; DP3 result.texcoord[3].z, eyevec, normal; MOV result.texcoord[3].w, 1.0; # regular output DP4 result.position.x, mvp[0], vertex.position; DP4 result.position.y, mvp[1], vertex.position; DP4 result.position.z, mvp[2], vertex.position; DP4 result.position.w, mvp[3], vertex.position; MOV result.color, vertex.color; DP4 result.texcoord.x, mvt[0], vertex.texcoord; DP4 result.texcoord.y, mvt[1], vertex.texcoord; DP4 result.texcoord.z, mvt[2], vertex.texcoord; DP4 result.texcoord.w, mvt[3], vertex.texcoord; END```

i got this gl exception

org.lwjgl.opengl.OpenGLException: Invalid operation (1282)

at org.lwjgl.opengl.Util.checkGLError(Util.java:53)

at org.lwjgl.opengl.Display.swapBuffers(Display.java:591)

at org.lwjgl.opengl.Display.update(Display.java:609)

at com.jme.renderer.lwjgl.LWJGLRenderer.displayBackBuffer(LWJGLRenderer.java:518)

at com.jme.app.BaseGame.start(BaseGame.java:85)

at munch.utility.export.ParallaxExporter.main(ParallaxExporter.java:50)

Works perfectly fine for me.

Did you put a !!ARBvp1.0 at the beginning? You need the header otherwise it won't compile.

Momoko_Fan said:

Works perfectly fine for me.

Did you put a !!ARBvp1.0 at the beginning? You need the header otherwise it won't compile.