Компьютерная графика

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » Компьютерная графика » Программирование графики и GPU » Volum Lightmapping, сглаживание границ


Volum Lightmapping, сглаживание границ

Сообщений 1 страница 2 из 2

1

здравствуйте Алексей Викторович, я сделал объемные лайтмапы через 3д текстуру, вот что получилось (текстура 64x32x64):
http://s003.radikal.ru/i204/1004/95/c66ec427af69.jpg

такая текстура весит 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;
}

0

2

а, все, не нужно :) разобрался, даже сглаживание не нужно, добавил 2д лайтмапы и получилось классно, ну и вообще убрал сжатие DXT, только все портит, а размер почему-то еще больше становиться, вот что получилось:
http://s51.radikal.ru/i134/1006/62/7a26b56e3d94.jpg
и весит такое 384 КБ :)

Отредактировано Fluffy (2010-06-07 13:19:27)

0


Вы здесь » Компьютерная графика » Программирование графики и GPU » Volum Lightmapping, сглаживание границ


создать свой форум бесплатно