forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   3D-программирование (http://forum.boolean.name/forumdisplay.php?f=12)
-   -   Отражения в воде Что есчё за SetCubeFace? (http://forum.boolean.name/showthread.php?t=2989)

johnk 06.09.2007 09:17

Re: Отражения в воде Что есчё за SetCubeFace?
 
Ну дык землю на это не проверяй...тебе же только объекты скрыть надо? Ну тогда все в норме быть должно :))) Если я тебя правельно конечно понял.. :)

ABTOMAT 06.09.2007 09:33

Re: Отражения в воде Что есчё за SetCubeFace?
 
JohnK, именно что землю... Если не скрыть подводную часть земли, страшные глюки вылазят.

johnk 06.09.2007 09:38

Re: Отражения в воде Что есчё за SetCubeFace?
 
Ну тогда на сектора разбить....Подземные - прятать, Не подземные - ПОказывать :)

Tadeus 06.09.2007 11:53

Re: Отражения в воде Что есчё за SetCubeFace?
 
Извини, если скажу ща тупое, но почему бы тебе не разместить подводную камеру на уровне с водой?

IGR 06.09.2007 13:58

Re: Отражения в воде Что есчё за SetCubeFace?
 
Цитата:

почему бы тебе не разместить подводную камеру на уровне с водой?
именно на самом уровне ??
и что по-твоему это даст ??

moka 06.09.2007 14:25

Re: Отражения в воде Что есчё за SetCubeFace?
 
Хм, ABTOMAT, а ты не эксперементировал так:
Двигаем в точку на воде куда смотрит камера, вторую камеру, гдето на 75% и скалим саму камеру (либо привязываем её к пустому мэшу и скалим мэш). Пробовал? Просто вспомнил что камера скалиться, и вылазять тогда интерестные артефакты, а вот если этим воспользоваться? Я про то что увеличить ей градус обзора, и придвинуть, тем самым мы уже часть избегаем. Да и кстать, у ашадовса был тоже этот артефакт, что ландшафт рендерился :)

IGR 06.09.2007 14:27

Re: Отражения в воде Что есчё за SetCubeFace?
 
Цитата:

ашадовса был тоже этот артефакт
был т.е. его устранили ??

moka 06.09.2007 14:28

Re: Отражения в воде Что есчё за SetCubeFace?
 
IGR незнаю, просто когда я его щупал, тогда был, а как щас хз ;)

ABTOMAT 06.09.2007 18:50

Re: Отражения в воде Что есчё за SetCubeFace?
 
JohnK, у меня сейчас оно так и есть, но я спрашиваю, как по-другому это можно сделать?
MoKa, камеру нельзя трогать! С ней у меня всё очень точно, чуток не так и отражение в сторону поплывёт.
Tadeus, нельзя, я пробывал, отражение получается неверное! Нужно чтоб вторая камера была бы на той же глубине, что и высота первой камеры над уровнем моря (см. 37 пост за авторством Дипломата)

Tadeus 06.09.2007 20:36

Re: Отражения в воде Что есчё за SetCubeFace?
 
Кстати, действительно поэксперементировал с SetCubeFace и рекомендую не возлагать на него надежд :)

Данил 06.09.2007 21:25

Re: Отражения в воде Что есчё за SetCubeFace?
 
Я думаю, SetCubeFace гафно ибо там КУЧА лишних рендеров... а это никому не надо...

ЛысыЙ_Чук-Иванчук 07.09.2007 10:13

Re: Отражения в воде Что есчё за SetCubeFace?
 
Цитата:

Сообщение от Данил
Я думаю, SetCubeFace гафно ибо там КУЧА лишних рендеров... а это никому не надо...

А вот тут ты глубоко ошибаешся!!!!
Естественно для воды 6 рендеров некчему!
Однако если тебе нужно чтобы объект отрожал окружающий мир?
Да и кто тебя заставляет рендерить каждый проход цикла, раз в 5 сек и норм!;)

moka 07.09.2007 11:46

Re: Отражения в воде Что есчё за SetCubeFace?
 
Многие как я вижу непонимают что такое кубемапа? Так вот она абсолютно ну никак не подойдёт для плоскостей. Это отражение ОДНОЙ точки и всё. Для сферы идёт хорошо, но никак подругому.
Отражение для воды, это уже будет одна текстура, которая наложиться на воду, но с рефракциями.
Так что кубемапы не трогайте, они для мелочей как красивый эффект идут безупречно, для металла, стекла и других бликующих предметов.
А воду уж придёться делать самому.

Tadeus 07.09.2007 16:24

Re: Отражения в воде Что есчё за SetCubeFace?
 
Цитата:

Я думаю, SetCubeFace гафно ибо там КУЧА лишних рендеров... а это никому не надо...
Блин, ну я же уже говорил, что можно рендерить за цикл только одну сторону! Для тех кто не понимает - вот:

Код:


Global water_side

Function RenderWater()

CameraProjMode camera,0
CameraProjMode WaterCamera,1

PositionEntity WaterCamera,EntityX(player),EntityY(water),EntityZ(player)

;Left view
If water_side = 0
  SetCubeFace WaterMapTexture,0
  RotateEntity WaterCamera,0,90,0
  RenderWorld
  CopyRect 0,0,WaterMapSize,WaterMapSize,0,0,BackBuffer(),TextureBuffer(WaterMapTexture)
Endif
;forward view
If water_side = 1
  SetCubeFace WaterMapTexture,1
  RotateEntity WaterCamera,0,0,0
  RenderWorld
  CopyRect 0,0,WaterMapSize,WaterMapSize,0,0,BackBuffer(),TextureBuffer(WaterMapTexture)
Endif
;right view
If water_side = 2
  SetCubeFace WaterMapTexture,2
  RotateEntity WaterCamera,0,-90,0
  RenderWorld
  CopyRect 0,0,WaterMapSize,WaterMapSize,0,0,BackBuffer(),TextureBuffer(WaterMapTexture)
Endif
;backward view
If water_side = 3
  SetCubeFace WaterMapTexture,3
  RotateEntity WaterCamera,0,180,0
  RenderWorld
  CopyRect 0,0,WaterMapSize,WaterMapSize,0,0,BackBuffer(),TextureBuffer(WaterMapTexture)
Endif
;up view
If water_side = 0
  SetCubeFace WaterMapTexture,4
  RotateEntity WaterCamera,-90,0,0
  RenderWorld
  CopyRect 0,0,WaterMapSize,WaterMapSize,0,0,BackBuffer(),TextureBuffer(WaterMapTexture)
Endif

water_side = water_side + 1
If water_side > 4
  water_side = 0
EndIf

CameraProjMode WaterCamera,0
CameraProjMode camera,1

End Function

Причем, отражение такое же, но в 6 раз быстрее.

Но искажения действительно есть. Что является существенным недостатком.

HolyDel 07.09.2007 21:31

Re: Отражения в воде Что есчё за SetCubeFace?
 
MoKa, вода невсегда плоскость. Иногда это анимировнный меш, который имеет высоту отличную от нуля, а ето уже паралеллипипед, и чтобы "сторона волны" отражала то что должна - юзают кубемапу. Такой вариант часто используют извращенцы, которых еще непоймали и не запрятали в психушку, поэтому они внаглую развращают молодежь.

Tadeus, когда самая главная грань - верхняя, небудет отрендерина и юзеру вздумается повернуть камеру, градусов едак на 45 (а на это уйдет времени, меньше чем 6 тактов), то картинка что отображается (террайн, деревья) и картинка того что отражается в воде (то-же самое) будут несовпадать, что может причинить хрупкой психики юзера некоторые неудобства.
ПС. а чо ты не предлагаеш игровой цикл разделить на пару сегментов, если один то просчитываем логику, если два то обрабатываем спецэффекты, если три то физику, если 4 то рендерим все ето, если пять то ждем пока все отрсуется на мониторе?


Часовой пояс GMT +4, время: 18:04.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot