здравствуйте Алексей Викторович, я сделал объемные лайтмапы через 3д текстуру, вот что получилось (текстура 64x32x64):
такая текстура весит 384 КБ это ладно, но если будут большие пространства, то понадобиться много таких текстур и это все будет занимать много места, поэтому я сделал DXT сжатие (DXT5), но теперь вместо сглажженых краев, получаются шумные края (Noise), знаю что можно как то эти края сглаживать в шейдере, вот у меня и вопрос, как это сделать??? вот код шейдера:
[Vertex shader]
uniform mat4 ModelMatrix;
varying vec4 pos;
varying vec2 texCoord;
void main(void) {
gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex;
pos = ModelMatrix*gl_Vertex;
texCoord = gl_MultiTexCoord0.xy;
}
[Fragment shader]
uniform sampler3D lmap;
uniform sampler2D cmap;
uniform vec4 emin;
uniform vec4 emax;
varying vec4 pos;
varying vec2 texCoord;
void main(void) {
vec4 size = emax-emin;
vec4 cpos = (pos-emin)/(emax-emin);
//cpos = cpos/size;
vec4 color = texture2D(cmap,texCoord);
vec4 intensity = texture3D(lmap,cpos.xyz);
gl_FragColor = color*intensity;
}
разобрался, даже сглаживание не нужно, добавил 2д лайтмапы и получилось классно, ну и вообще убрал сжатие DXT, только все портит, а размер почему-то еще больше становиться, вот что получилось: