[GEM-dev] vertexbuffer attribute

Cyrille Henry ch at chnry.net
Sun Jul 5 22:50:45 CEST 2015


hello,

i've got a problem using vertexbuffer attribute : dimension is set to a wrong value.

when using the example 10.glsl/16.vertexbufer_attribute, "print_attributes" gives :

vb: program 0.5
vb: position 1003_position
vb: attribute LightPosition 1003_LightPosition
vb: attribute BrickColor 1003_BrickColor
vb: attribute MortarColor 1003_MortarColor
vb: attribute BrickSize 1003_BrickSize
vb: attribute BrickPct 1003_BrickPct
[gemvertexbuffer]: GLSL-ProgramID: 3
[gemvertexbuffer]: Attribute1: LightPosition
[gemvertexbuffer]: 	size: 48
[gemvertexbuffer]: 	dimen: 2
[gemvertexbuffer]: 	program_index: 1
[gemvertexbuffer]: Attribute2: BrickColor
[gemvertexbuffer]: 	size: 48
[gemvertexbuffer]: 	dimen: 3
[gemvertexbuffer]: 	program_index: 3
[gemvertexbuffer]: Attribute3: MortarColor
[gemvertexbuffer]: 	size: 48
[gemvertexbuffer]: 	dimen: 3
[gemvertexbuffer]: 	program_index: 4
[gemvertexbuffer]: Attribute4: BrickSize
[gemvertexbuffer]: 	size: 32
[gemvertexbuffer]: 	dimen: 3
[gemvertexbuffer]: 	program_index: 5
[gemvertexbuffer]: Attribute5: BrickPct
[gemvertexbuffer]: 	size: 32
[gemvertexbuffer]: 	dimen: 4
[gemvertexbuffer]: 	program_index: 6
vb: print_attributes

in the shader code :
attribute vec3 LightPosition;
attribute vec3 BrickColor, MortarColor;
attribute vec2 BrickSize, BrickPct;


so LightPosition is declare a vec3, but dimen is 2, BrickSize is declare a vec2 and dimen is 3, BrickPct is declare as vec2 and dimen is 4.

when adding a float attribute, I have :
vb: program 0.5
vb: position 1003_position
vb: attribute LightPosition 1003_LightPosition
vb: attribute BrickColor 1003_BrickColor
vb: attribute MortarColor 1003_MortarColor
vb: attribute BrickSize 1003_BrickSize
vb: attribute BrickPct 1003_BrickPct
vb: attribute test 1003_test
[gemvertexbuffer]: GLSL-ProgramID: 3
[gemvertexbuffer]: Attribute1: LightPosition
[gemvertexbuffer]: 	size: 48
[gemvertexbuffer]: 	dimen: 2
[gemvertexbuffer]: 	program_index: 1
[gemvertexbuffer]: Attribute2: BrickColor
[gemvertexbuffer]: 	size: 48
[gemvertexbuffer]: 	dimen: 3
[gemvertexbuffer]: 	program_index: 3
[gemvertexbuffer]: Attribute3: MortarColor
[gemvertexbuffer]: 	size: 48
[gemvertexbuffer]: 	dimen: 3
[gemvertexbuffer]: 	program_index: 4
[gemvertexbuffer]: Attribute4: BrickSize
[gemvertexbuffer]: 	size: 32
[gemvertexbuffer]: 	dimen: 1
[gemvertexbuffer]: 	program_index: 5
[gemvertexbuffer]: Attribute5: BrickPct
[gemvertexbuffer]: 	size: 32
[gemvertexbuffer]: 	dimen: 3
[gemvertexbuffer]: 	program_index: 6
[gemvertexbuffer]: Attribute6: test
[gemvertexbuffer]: 	size: 16
[gemvertexbuffer]: 	dimen: 4
[gemvertexbuffer]: 	program_index: 7
vb: print_attributes

strange...


anyhow, the result of the example 16 is not right : texture is distorted.



- is this example working for anyone? (i test with ubuntu 14.04 / nvidia and intel gpu)
- is this example used to work for anyone?
- can it be fixed? (i tried, but did not understand where the m_attribute.size() was set - maybe the problem is that it's never set!!!)


my current project is halted because of this problem. any help will be appreciated.

cheers
c



More information about the GEM-dev mailing list