Войти
ПрограммированиеФорумОбщее

Нужна помощь с волнами от падения объектов (2 стр)

Страницы: 1 2
#15
15:16, 5 авг. 2021

lookid
Я же не предлагаю выдернуть реализацию из ассета. Я предлагаю посмотреть принцип реализации и создать что-то подобное.


#16
(Правка: 7 авг. 2021, 18:20) 16:24, 6 авг. 2021

Ребят, сделал обьект с LODами, который дублирую и расставляю как воду.
Волны рисуются нормально, на соседние обьекты волны тоже нормально переходят и с этим вроде как нет проблем.
Но обнаружил проблему с производительностью:
"As Unity does not support GPU instancing and tessellation at the same time, there's no point in copying this ID"
источник
Здесь кто-то тоже безуспешно развлекается с подобной проблемой.
Насколько понял, unity не умеет делать инстансить(GPU Instancing) тесселляционные шейдеры. Вот это сюрприз.
Как тогда можно эффективно рендерить воду ????

#17
18:25, 7 авг. 2021

Вода движется с большим скрежетом, но все же как-то движется.
Вот какую воду получилось сделать:
ссылка на видео
Но это еще не все. Еще хочу сделать так чтобы волны расходились в соответствии с тем как объект упал в воду. Работаю над этим.

Тесселляция + GPU Instancing SurfaceShader у меня почему-то не работают. Вообще никак. Ребят, кто-то смог их заставить работать или это только мои руки кривые?

#18
(Правка: 17:04) 17:01, 9 авг. 2021

Ребят, для симуляции воды использую CustomRenderTexture.
Исходный код этого класса не смог найти. Вернее смог найти это.
Но этот код мне не показывает реализацию методов, тот же Update(int iter) не показан.

Мне иногда нужно вмешаться в процесс симуляции жидкости и что-то прирендерить к текущему состоянию симуляции. Сейчас делаю это так:

// получаю текущую текстуру жидкости:
CustomRenderTexture crt = smoothWater.GetCurrentWaterTex ();

// беру текстуру с камеры и размываю ее:
            Graphics.Blit ( m_Camera.targetTexture, smoothWater.seamBufferTmpRT, m_BlitMaterial, 0 );// hor blur
            Graphics.Blit ( smoothWater.seamBufferTmpRT, m_Camera.targetTexture, m_BlitMaterial, 1 );// ver blur

// использую размытую текстуру с камеры чтобы склеить ее с текущим состоянием симуляции:
            m_BlitMaterial.SetTexture ( "_TexBlitB", m_Camera.targetTexture );
            Graphics.Blit ( crt, smoothWater.seamBufferTmpRT, m_BlitMaterial, 2 );
            //--

// А тут примерняю все ятобы продолжить симуляцию с новыми входными значениями (seamBufferTmpRT)
            crt.initializationTexture = smoothWater.seamBufferTmpRT;
            crt.Initialize ();

Это работает, но во время рендера замечаю тормоза. Хотелось бы посмотреть на исходник класа CustomRenderTexture.
Не знаете где его можно найти?

Страницы: 1 2
ПрограммированиеФорумОбщее