Шейдеры для облаков
|
|
robertono | Дата: Четверг, 01 Августа 2013, 00:03 | Сообщение # 1 |
Чокнутый Кот
Сейчас нет на сайте
| Всем привет. Вот уже как пару недель делаю свою систему облаков. Пробовал с партиклами, с 2D текстурами летающими по небу)) Всё это очень медленно и на горизонте облаков нету. И тут я придумал сделать вокруг мира огромейшую сферу, убрать коллайдер и поставить на него текстуру облаков. Далее уже скриптами я смогу плавно менять на другие облака, цвет и т.д. Это уже другая история. У меня возникла с этим всем проблема. Ну во первых из шейдеров предложенных юнити я не смог найти ничего достойного. Большинство шейдеров , текстуры на шейдере не видно изнутри сферы. Т.е. отображается только с внешней стороны. Отсюда вопрос, если писать свой шейдер я могу сделать что бы текстура была видна с одной стороны, но только изнутри сферы? Далее. Мне нужна поддержка прозрачности в текстурах. Я присмотрел один шейдер, Particles / Additive (Soft). Облака немного прозрачны, вроде как есть поддержка альфа текстуры. Но я обнаружил проблему в наложении текстуры. Я думаю дело не в Шейдере а в самом гейм обджекте. Вот посмотрите : Как видите, с одной стороны видно как текстура соприкосается с концом / началом текстуры. Некий шов. Ну ладно, это просто нужно сделать текстуру правильную. Больше всего меня беспокоит то что на самой верхней точки текстуру как будто "засасывает" в верхний центр. Можно ли как то это исправить ? Куча благодарностей тому кто сможет помочь.
|
|
| |
Asteroid | Дата: Четверг, 01 Августа 2013, 00:09 | Сообщение # 2 |
Blender updated
Сейчас нет на сайте
| а почему тебе не вывернуть нормаль сферы вовнутрь ? или сделать материал прозрачным .
|
|
| |
robertono | Дата: Четверг, 01 Августа 2013, 00:11 | Сообщение # 3 |
Чокнутый Кот
Сейчас нет на сайте
| Цитата (Asteroid) а почему тебе не вывернуть нормаль сферы вовнутрь ? а как это сделать? Я использую сферу которая в юнити создается. Это не импортированная 3д модель
|
|
| |
afrokick | Дата: Четверг, 01 Августа 2013, 00:11 | Сообщение # 4 |
участник
Сейчас нет на сайте
| а как насчет плоскости(одно облако), которая по окружности перемещается и всегда направлена "лицом" к игроку(или под каким-то углом)?
Можно запилить один материал, с помощью uv сделать несколько текстур облаков... По перфомансу должно быть круто
Сообщение отредактировал afrokick - Четверг, 01 Августа 2013, 00:13 |
|
| |
robertono | Дата: Четверг, 01 Августа 2013, 00:15 | Сообщение # 5 |
Чокнутый Кот
Сейчас нет на сайте
| afrokick, исключено. Некрасиво, неудобно. Почему я решил отказатся от плоскости. Камера игрока видит 5000 метров. Мне нужно что бы облака были до горизонта, т.е. в самом самом далеке они косались земли. А шар : вокруг земли, красиво выглядит. Это удобнее намного. Вращать просто. Можно добавить кучу материалов на него и контролировать альфу каждого.
|
|
| |
afrokick | Дата: Четверг, 01 Августа 2013, 00:22 | Сообщение # 6 |
участник
Сейчас нет на сайте
| Ну вам виднее. Чтобы нормаль вывернуть, надо домножить ее на -1 насколько я понял
Код Mesh mesh = GetComponent<MeshFilter>().mesh; Vector3[] normals = mesh.normals; int i = 0; while (i < normals.Length) { normals[i] = -1 * normals[i]; i++; } mesh.normals = normals;
хотя могу ошибаться...
|
|
| |
robertono | Дата: Четверг, 01 Августа 2013, 00:26 | Сообщение # 7 |
Чокнутый Кот
Сейчас нет на сайте
| afrokick, даже если вывернуть нормали, это не решит проблему которую я показал на скриншоте выложенным в первом посте.
|
|
| |
Asteroid | Дата: Четверг, 01 Августа 2013, 00:30 | Сообщение # 8 |
Blender updated
Сейчас нет на сайте
| СкайДом существует в юнити ?(SkyDome)
Может поможет в чём
непосредственно о юнити
Сообщение отредактировал Asteroid - Четверг, 01 Августа 2013, 01:27 |
|
| |
robertono | Дата: Четверг, 01 Августа 2013, 00:32 | Сообщение # 9 |
Чокнутый Кот
Сейчас нет на сайте
| Asteroid, я только знаю про Sky Cube. Возможно они похожи если это из другого движка.
|
|
| |
Левша | Дата: Четверг, 01 Августа 2013, 01:01 | Сообщение # 10 |
почти ветеран
Сейчас нет на сайте
| Цитата (robertono) текстуры на шейдере не видно изнутри сферы. robertono, cделай полуСферу в максе, флипни полигоны, наложи развертку и все встанет на свои места.
X.cor.R (Prologue)
Сообщение отредактировал Левша - Четверг, 01 Августа 2013, 01:02 |
|
| |
robertono | Дата: Четверг, 01 Августа 2013, 01:03 | Сообщение # 11 |
Чокнутый Кот
Сейчас нет на сайте
| Левша, да зачем это, можно просто использовать двух сторонний материал. Меня больше беспокоит то что на скрине, то что в самом центре , на самой высокой точке шара.
|
|
| |
Левша | Дата: Четверг, 01 Августа 2013, 05:30 | Сообщение # 12 |
почти ветеран
Сейчас нет на сайте
| Цитата (robertono) Меня больше беспокоит то что на скрине, то что в самом центре , на самой высокой точке шара. Цитата (robertono) да зачем это Именно за этим - развертку говорю сделай... Цитата (Левша) и все встанет на свои места
X.cor.R (Prologue)
|
|
| |
robertono | Дата: Четверг, 01 Августа 2013, 11:19 | Сообщение # 13 |
Чокнутый Кот
Сейчас нет на сайте
| А если я сделаю сферу в 3д максе, такая штука тоже будет как на скрине? Почему именно полусферу?
|
|
| |
romgerman | Дата: Четверг, 01 Августа 2013, 12:20 | Сообщение # 14 |
старожил
Сейчас нет на сайте
| Просто сделай нормальную текстуру.
|
|
| |
GantZ_Yaka | Дата: Четверг, 01 Августа 2013, 12:29 | Сообщение # 15 |
почетный гость
Сейчас нет на сайте
| Цитата (robertono) А если я сделаю сферу в 3д максе, такая штука тоже будет как на скрине? Почему именно полусферу? Изначально - да будет, и не только в 3Dmax'e, это стандартное наложение материала на сферу в любом 3d редакторе, квадратная картинка растягивается по координатам квадратной развертки сферы. Для правильного расположения материала нужно использовать инструменты 3d-редакторов, в 3d-max это модификаторы "UVW-map" и "Unwrap UVW" и с помощью них менять развертку. Изначальная развертка в 3dmaxe выглядит так: Из развертки видно, что можно сделать красивое небо, лишь отредактировав текстуру в фотошопе: 1. нужно закрасить выделенные красным места треугольников на текстуре одним цветом, чтобы они хорошо склеились на полюсе сферы. 2. нужно сделать бесшовное соединение - левый край текстуры должен копировать правый, так, чтобы при их совмещении не был виден шов. Подобробнее о создании бесшовных текстур в фотошопе может помочь гугл Вариантов создания купола неба много, я привел лишь один самый простой. А полусферу используют - потому что нафига козе баян. Отсекаем лишние полигоны - если мы их в игре никогда не увидим, зачем они нужны, + уменьшается общая площадь для развертки текстуры и при наложении её, она сразу ложится нарисованным горизонтом к основанию купола
|
|
| |
Asteroid | Дата: Четверг, 01 Августа 2013, 12:33 | Сообщение # 16 |
Blender updated
Сейчас нет на сайте
|
используй блендер
Сообщение отредактировал Asteroid - Четверг, 01 Августа 2013, 12:33 |
|
| |
EchoIT | Дата: Четверг, 01 Августа 2013, 12:55 | Сообщение # 17 |
старожил
Сейчас нет на сайте
|
Цитата это модификаторы "UVW-map" и "Unwrap UVW" и с помощью них менять развертку. Достаточно просто на эту полусферу наложить UVW-Map с настройкой Planar, и всё станет почти отлично.
Долгожданный анонсик: State of War
Сообщение отредактировал EchoIT - Четверг, 01 Августа 2013, 12:58 |
|
| |
Tris | Дата: Четверг, 01 Августа 2013, 13:35 | Сообщение # 18 |
был не раз
Сейчас нет на сайте
| robertono,Цитата И тут я придумал сделать вокруг мира огромейшую сферу, убрать коллайдер и поставить на него текстуру облаков.
Придумал???
Ссылка
Сообщение отредактировал Tris - Четверг, 01 Августа 2013, 13:36 |
|
| |
EchoIT | Дата: Четверг, 01 Августа 2013, 13:57 | Сообщение # 19 |
старожил
Сейчас нет на сайте
| До этого очень просто додуматься, и не надо свои уроки, которые кстати не очень хорошие, рекламить. Не та тема.
Долгожданный анонсик: State of War
|
|
| |
robertono | Дата: Четверг, 01 Августа 2013, 16:09 | Сообщение # 20 |
Чокнутый Кот
Сейчас нет на сайте
| Tris, Цитата (EchoIT) не надо свои уроки, которые кстати не очень хорошие, рекламить во во ты думаешь ты единственный кто додумался до такого? GantZ_Yaka, просто используя сферу можно имитировать их передвижение. Просто крутить сферу и всё.
|
|
| |