![]() |
Не получается натянуть текстуру на террайн
Народ, кто нибудь пытался программно положить текстуру на программно созданный террайн?
Просто как не пробую, что то ничего не выходит. :''(( |
Ответ: Не получается натянуть текстуру на террайн
Еще нет, но как-нибудь займусь. Есть один проект где это нужно. Но проект заморожен на неопределенный срок.
|
Ответ: Не получается натянуть текстуру на террайн
http://blog.almostlogical.com/2010/0...on-in-unity3d/
Тут текстура вроде меняется |
Ответ: Не получается натянуть текстуру на террайн
мне бы вот самому понять как с этими alphamap, splatMapData и т.д. работать и откуда их брать (у меня на террайне их нет), а по ссылке там такие тайны не раскрывают.
|
Ответ: Не получается натянуть текстуру на террайн
Так там вроде исходники есть?
UPD: На сколько я понимаю AlphaMap - это карта альфа слоев, с помощью которой смешиваются текстуры. При деформации тому слою, который должен быть отображен присваивается 1, остальным 0. Т.е. видимым становится только тот слой, который указан. |
Ответ: Не получается натянуть текстуру на террайн
|
Ответ: Не получается натянуть текстуру на террайн
ээээ может я чего не понимаю, но что мешает просто заменить текстуру в материале терайна?
|
Ответ: Не получается натянуть текстуру на террайн
а как, можно маленький пример?
Дело в том, что я через скрипт создал объект террайна, растянул его как надо, по текстуре из flaten создал рельеф и теперь как назначить материал или текстуру данному объекту? |
Ответ: Не получается натянуть текстуру на террайн
к сожалению я не знаю ответа. С террайном не работал и думал, что он как меш работает оказалось не так все.
|
Ответ: Не получается натянуть текстуру на террайн
Изучая возможности нашего VIZIO по работе с TerrainData наткнулся на это:
http://unity3d.com/support/documenta...rototypes.html http://unity3d.com/support/documenta...Prototype.html думаю это то что Вам нужно. |
Ответ: Не получается натянуть текстуру на террайн
спасибо, буду пробовать, как что то получится - отпишу в общую копилку.
|
Ответ: Не получается натянуть текстуру на террайн
Вложений: 1
Ну вот ежели кому интересно, то в двух словах делаем так:
SplatPrototype[] test = new SplatPrototype[1]; test[0] = new SplatPrototype(); test[0].texture = (Texture2D)Resources.Load("Balmoral", typeof(Texture2D)); test[0].tileOffset = new Vector2(0, 0); test[0].tileSize = new Vector2(15, 15); //test[1] = new SplatPrototype(); //test[1].texture = (Texture2D)Resources.Load("grydirt2", typeof(Texture2D)); //test[1].tileOffset = new Vector2(0, 0); //test[1].tileSize = new Vector2(15, 15); terrain.terrainData.splatPrototypes = test; terrain.terrainData.alphamapResolution = 512; print(terrain.terrainData.alphamapHeight); И получаем: |
Ответ: Не получается натянуть текстуру на террайн
Вот выпало свободное время и опять пришлось вернуться к своей проблеме.
Пытаюсь смикшировать несколько текстур и не получается :( обозначил splatmapData как: int Tw = terrain.terrainData.heightmapWidth - 1; splatmapData = terrain.terrainData.GetAlphamaps(0, 0, Tw, Tw); назначил несколько текстур SplatPrototype как описал в посте выше. В цикле бегу по высотам и пытаюсь в зависимости от высоты назначить разные текстуры: splatmapData[x, y, 0] = splat.x; splatmapData[x, y, 1] = splat.y; splatmapData[x, y, 2] = splat.z; splatmapData[x, y, 3] = splat.z; И получаю ошибку: IndexOutOfRangeException: Array index is out of range. (wrapper managed-to-managed) object:ElementAddr (object,int,int,int) test1.Awake () (at Assets/test1.cs:149) Хотя если судить по разным кускам кода в инете у всех остальных таких проблем с таим кодом нет, в чем может быть проблема? |
Ответ: Не получается натянуть текстуру на террайн
Текстур на террейне создал 4?
|
Ответ: Не получается натянуть текстуру на террайн
да, число текстур соответствует.
|
Часовой пояс GMT +4, время: 00:01. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot