{{notification.text}}

MirGames

31.07.11 01:15
0
как в двиге корёжить меш? Например, нужно процедурно создать планету.
1) грузим меш (сферу). Жаль, двиг такого не умеет (создавать)
2) как двигать вершины, желательно не слишком низкоуровнево?
#1
MegaBasss
31.07.11 02:40
0
Цитата(Dy1 @ 30.07.2011 - 20:15) [snapback]108392[/snapback]

2) как двигать вершины, желательно не слишком низкоуровнево?


В 3D max, потом экспортируй.
#2
LordTot
31.07.11 03:28
0
двигать вершины в двиге вроде нельзя. только в редакторе, так что
создаем в максе сферу, накладываем на нее текстуру, обязательно запекаем, иначе текстура не наложится в движке на сферу.
экспортируем в меш и грузим в двиге.
если хотим чтобы облака еще двигались, то дополнительно создаем вторую сферу немного больше по размеру чем предыдущая, дальше кидаем на нее текстуру облаков с альфа каналом, запекаем, экспортируем.
в двиге второй сфере задаем вращение, в итоге получаем планету с живыми облаками, вроде как то так :)
#3
31.07.11 05:23
0
если бы было всё так просто...
Цитата
Например, нужно процедурно создать планету
В реалтайме т.е.
Вот как сделать? Искать другой двиг? Писать свой? :\
Отредактировано: 31.07.11 05:25
#4
Хранитель Флейма
31.07.11 06:46
0
Dy1
Нарисовать сферу программно можно в любом двиге, который подразумевает допуск к низлежащему API.
Чуть погуглив ты найдешь сносные примеры. Чуть включив мозг, ты перепишешь drawSphere на своем языке, который ты используешь. Чуть поднабрав скилл ты сделаешь это еще лучше.

Не паникуй.
#5
Программир Всия Руси!
31.07.11 14:58
0
Dy1
У ресурс менеджера есть метод CreateMesh, котоырй как бы намекает.
У IMesh есит методы SetGeometry и GetGeometry, которые как бы намекают.

LordTot
Вообще текстуры не обязательно запякать, надо просто что бы был стандартный материал где бы в свойстве Diffuse стояла текстура.
#6
31.07.11 18:38
0
намекать-то намекают, да справка твоя бесполезная для НЭТа - что в ней есть обычно и так видно. Зато нет примеров использования.

Как заполнять pubtData у CreateMesh ? Зачем размер, когда длина массива всегда известна?

Что делает GetGeometry и Set...? В смысле когда и куда записывается?
Гет из массива в меш, сет наоборот? Или как раз наоборот, берём в массив, а устанавливаем меш из массива?
Отредактировано: 31.07.11 18:51
#7
Программир Всия Руси!
31.07.11 18:47
0
Dy1
Ну это уже другой вопрос. Я вообще для игры рекомендую С++.
А примеров для нета мало, вернее можно сказать нет, что уж тут поделаешь.
#8
31.07.11 19:02
0
Цитата(DRON @ 31.07.2011 - 14:47) [snapback]108402[/snapback]

А примеров для нета мало, вернее можно сказать нет, что уж тут поделаешь
Их вообще нет, кроме тех трёх, что на сайте.
#9
Программир Всия Руси!
31.07.11 22:15
0
Dy1
В SDK еще есть.
#11
01.08.11 01:09
0
Цитата(DRON @ 31.07.2011 - 18:15) [snapback]108404[/snapback]

Dy1
В SDK еще есть.
нужного нет, проверял
#12
Программир Всия Руси!
01.08.11 01:52
0
banksy
Ну так то описание есть. Оно не доделано и С++ ориентировано. Для всех языков у меня пока просто нету времени этим заняться.
#13
01.08.11 03:11
0
я смотрел и с++ и делфи
#14
02.08.11 00:36
0
при вращении курсор упирается в края экрана. Как перекидывать курсор? Или это не через двиг?
#15
Программир Всия Руси!
02.08.11 02:14
0
Dy1
Посмотри флаги метода IInput.Configure там есть что-то типа CURSOR_BEYOUND_SCREEN
#16
02.08.11 13:27
0
Цитата(DRON @ 1.08.2011 - 22:14) [snapback]108418[/snapback]

Dy1
Посмотри флаги метода IInput.Configure там есть что-то типа CURSOR_BEYOUND_SCREEN
Пробовал, не реагирует. Запускаю в окне. Поэтому?
#17
Программир Всия Руси!
02.08.11 14:33
0
Dy1
Надо еще EXCLUSIVE добавить и еще попробуй отрубить DirectInput на ините двига FORCE_AAPI_INPUT.
#18
02.08.11 20:56
0
спс, EXCLUSIVE помогло.

В шарпе нацеленная камера только так? Сократить не получится?
Код
TMatrix CamTranslate = TMatrix.MatrixTranslate(new TPoint3(0.0f, 0.0f, -1 * Radius));
TMatrix CamRotateY = TMatrix.MatrixRotate(CamRotate.x, new TPoint3(0.0f, 1.0f, 0.0f));
TMatrix CamRotateZX = TMatrix.MatrixRotate(CamRotate.y, new TPoint3(1.0f, 0.0f, 1.0f));
pRender3D.SetMatrix(ref CamTranslate, false);
pRender3D.SetMatrix(ref CamRotateZX, true);
pRender3D.SetMatrix(ref CamRotateY, true);

Нафига ref ? Благодаря ему приходится создавать переменные.

Ещё не нравится pInput.GetKey( E_KEYBOARD_KEY_CODES, out boolean);
Удобнее было бы, если бы результат сразу сравнивать в условии.
#19
Программир Всия Руси!
02.08.11 22:22
0
Dy1
Все это обусловлено ограничениями шарпа, увы и ах.
#20
02.08.11 22:25
0
Цитата(DRON @ 2.08.2011 - 18:22) [snapback]108432[/snapback]
Все это обусловлено ограничениями шарпа
а почему нельзя передать только как входные? По значению
#{{post.Index}}
{{post.Author.Login}}
{{post.CreatedDate | date:'dd.MM.yy HH:mm'}}
{{post.VotesRating}}
Отредактировано: {{post.UpdatedDate | date:'dd.MM.yy HH:mm'}}