forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Общие вопросы (http://forum.boolean.name/forumdisplay.php?f=166)
-   -   Не получается натянуть текстуру на террайн (http://forum.boolean.name/showthread.php?t=13827)

Slayer 04.12.2010 22:37

Не получается натянуть текстуру на террайн
 
Народ, кто нибудь пытался программно положить текстуру на программно созданный террайн?
Просто как не пробую, что то ничего не выходит. :''((

pax 04.12.2010 22:44

Ответ: Не получается натянуть текстуру на террайн
 
Еще нет, но как-нибудь займусь. Есть один проект где это нужно. Но проект заморожен на неопределенный срок.

Nuprahtor 04.12.2010 22:46

Ответ: Не получается натянуть текстуру на террайн
 
http://blog.almostlogical.com/2010/0...on-in-unity3d/
Тут текстура вроде меняется

Slayer 04.12.2010 22:56

Ответ: Не получается натянуть текстуру на террайн
 
мне бы вот самому понять как с этими alphamap, splatMapData и т.д. работать и откуда их брать (у меня на террайне их нет), а по ссылке там такие тайны не раскрывают.

pax 04.12.2010 22:57

Ответ: Не получается натянуть текстуру на террайн
 
Так там вроде исходники есть?

UPD: На сколько я понимаю AlphaMap - это карта альфа слоев, с помощью которой смешиваются текстуры. При деформации тому слою, который должен быть отображен присваивается 1, остальным 0. Т.е. видимым становится только тот слой, который указан.

impersonalis 05.12.2010 00:03

Ответ: Не получается натянуть текстуру на террайн
 
в жизни важнее натянуть вовсе не текстуру и совсе даже не на террайн. вот то проблема

Illidan 05.12.2010 00:58

Ответ: Не получается натянуть текстуру на террайн
 
ээээ может я чего не понимаю, но что мешает просто заменить текстуру в материале терайна?

Slayer 05.12.2010 17:46

Ответ: Не получается натянуть текстуру на террайн
 
а как, можно маленький пример?
Дело в том, что я через скрипт создал объект террайна, растянул его как надо, по текстуре из flaten создал рельеф и теперь как назначить материал или текстуру данному объекту?

Illidan 05.12.2010 19:05

Ответ: Не получается натянуть текстуру на террайн
 
к сожалению я не знаю ответа. С террайном не работал и думал, что он как меш работает оказалось не так все.

pax 05.12.2010 19:16

Ответ: Не получается натянуть текстуру на террайн
 
Изучая возможности нашего VIZIO по работе с TerrainData наткнулся на это:
http://unity3d.com/support/documenta...rototypes.html
http://unity3d.com/support/documenta...Prototype.html
думаю это то что Вам нужно.

Slayer 05.12.2010 20:45

Ответ: Не получается натянуть текстуру на террайн
 
спасибо, буду пробовать, как что то получится - отпишу в общую копилку.

Slayer 06.12.2010 22:08

Ответ: Не получается натянуть текстуру на террайн
 
Вложений: 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);

И получаем:

Slayer 02.01.2011 20:58

Ответ: Не получается натянуть текстуру на террайн
 
Вот выпало свободное время и опять пришлось вернуться к своей проблеме.
Пытаюсь смикшировать несколько текстур и не получается :(

обозначил 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)

Хотя если судить по разным кускам кода в инете у всех остальных таких проблем с таим кодом нет, в чем может быть проблема?

pax 02.01.2011 23:01

Ответ: Не получается натянуть текстуру на террайн
 
Текстур на террейне создал 4?

Slayer 03.01.2011 12:27

Ответ: Не получается натянуть текстуру на террайн
 
да, число текстур соответствует.


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

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