Показать сообщение отдельно
Старый 29.06.2009, 22:13   #37
CRASHER
Разработчик
 
Регистрация: 08.03.2007
Сообщений: 530
Написано 31 полезных сообщений
(для 36 пользователей)
Ответ: ARenderEntity и ZBuffer

А у меня вот такая проблемка, отражение в воде.
Здесь загружаю стороны для водного скайбокса. Когда над водой нахожусь всё норм, но под водой он отражает дно, что и немудрено.

		texturesize=TextureWidth(tex)
		CameraViewport camera,0,0,texturesize,texturesize
		SetCubeFace tex,0:RotateEntity camera,0,-90,0:RenderWorld;PE
		CopyRect 0,0,texturesize,texturesize,0,0,BackBuffer(),TextureBuffer(tex)
		SetCubeFace tex,1:RotateEntity camera,0,0,0:RenderWorld;PR
		CopyRect 0,0,texturesize,texturesize,0,0,BackBuffer(),TextureBuffer(tex)
		SetCubeFace tex,2:RotateEntity camera,0,90,0:	RenderWorld;Z
		CopyRect 0,0,texturesize,texturesize,0,0,BackBuffer(),TextureBuffer(tex)
		SetCubeFace tex,3:RotateEntity camera,0,180,0:	RenderWorld;L
		CopyRect 0,0,texturesize,texturesize,0,0,BackBuffer(),TextureBuffer(tex)
		SetCubeFace tex,4:RotateEntity camera,90,0,0:	RenderWorld
		CopyRect 0,0,texturesize,texturesize,0,0,BackBuffer(),TextureBuffer(tex)
		SetCubeFace tex,5:RotateEntity camera,-90,0,0:	RenderWorld
		CopyRect 0,0,texturesize,texturesize,0,0,BackBuffer(),TextureBuffer(tex)
Мне же надо чтобы видно было тоже самое, когда нет поверхности воды.
Только это должно отображаться на водной глади.
Здесь перевернул стороны по икс и вродебы всё заработало, но отражение под водой отражает зеркально в сторону (вправо в моём случае) то что я вижу на берегу.

		texturesize=TextureWidth(tex)
		CameraViewport camera,0,0,texturesize,texturesize
		SetCubeFace tex,0:RotateEntity camera,180,-90,0:RenderWorld;PE
		CopyRect 0,0,texturesize,texturesize,0,0,BackBuffer(),TextureBuffer(tex)
		SetCubeFace tex,1:RotateEntity camera,180,0,0:RenderWorld;PR
		CopyRect 0,0,texturesize,texturesize,0,0,BackBuffer(),TextureBuffer(tex)
		SetCubeFace tex,2:RotateEntity camera,180,90,0:	RenderWorld;Z
		CopyRect 0,0,texturesize,texturesize,0,0,BackBuffer(),TextureBuffer(tex)
		SetCubeFace tex,3:RotateEntity camera,180,180,0:	RenderWorld;L
		CopyRect 0,0,texturesize,texturesize,0,0,BackBuffer(),TextureBuffer(tex)
		SetCubeFace tex,4:RotateEntity camera,90,0,0:	RenderWorld
		CopyRect 0,0,texturesize,texturesize,0,0,BackBuffer(),TextureBuffer(tex)
		SetCubeFace tex,5:RotateEntity camera,-90,0,0:	RenderWorld
		CopyRect 0,0,texturesize,texturesize,0,0,BackBuffer(),TextureBuffer(tex)
как убрать отражение в сторону?
Перепробовал много чего , вертел стороны по всякому, не помогает. Подскажите пожалуст
Скрин проблемы


Справа отражение под водой, а слева терейн который видно сквозь воду.
(Offline)
 
Ответить с цитированием