forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   3D-программирование (http://forum.boolean.name/forumdisplay.php?f=12)
-   -   Частичное текстурирование примитива. (http://forum.boolean.name/showthread.php?t=2491)

Chrono Syndrome 23.01.2007 21:10

Частичное текстурирование примитива.
 
Имеется: Куб, созданный через CreateCube.
Требуется: Затекстурировать ему одну (выбранную) сторону.

Подскажите, плиз, как это лучше сделать...

Черный крыс 23.01.2007 21:16

Re: Частичное текстурирование примитива.
 
Куб лучше создать в Максе...и перейти в режим полигонального редактирования...потом выбираешь нужную группу полигонов и затекстуриваешь...попутно можешь применить модификатор текстурных координат....это если текстура неправильно положиться.

Chrono Syndrome 23.01.2007 21:20

Re: Частичное текстурирование примитива.
 
Цитата:

Сообщение от Diablo1909
Куб лучше создать в Максе...и перейти в режим полигонального редактирования...потом выбираешь нужную группу полигонов и затекстуриваешь...попутно можешь применить модификатор текстурных координат....это если текстура неправильно положиться.

Да это-то все понятно... Только, ИМХО, кубы в Максе моделить - это уже слишком. Так что меня интересуют именно созданные через CreateCube.

Черный крыс 23.01.2007 21:48

Re: Частичное текстурирование примитива.
 
А что такого зазорного если куб создать в максе и загрузить его? Это наиболее простой и эффективный вариант решения проблеммы. Ну если это тебя не устраивает...тогда этот куб нада пересчитать по вертексам, определить полигоны, и к этим поликам присвоить текстуру.... - другой вариант - разбить куб на сюрфейсы и затекстурить нужный. - но это ресурсозатратно.

Diplomat 23.01.2007 21:49

Re: Частичное текстурирование примитива.
 
0. ИМХО- текстурные координаты граней куба, созданного с помошью КриейтКуб совпадают и затекстурить одну стенку невозможно.

1. Как вариант- создать куб вручную повертексно. Именно так почему-то рекомендуют создавать скайбоксы в семплах для Блица. К чему этот гемо... то есть головная боль- не пойму до сих пор. Особенно если проанализировать время, необходимое для того, чтоб хотя бы набить весь код такой ф-и.

2. Если куб не будет вращаться- можно нанести на него кубемапу. Смысла тоже немного: ибо тормоза и легендарнаяы "неполная совместимость" с дореволюционными видеокартами.

3. Создавать куб в ЗДМах-е и экспортить в БЗД. Это совсем не слишком. Это даже очень в самый раз. Тем более, что занимает времени столько, сколько требуется чтоб запустить Мах + 30-300 сек. реального времени в зависимости от опытности моделера.
:)

Chrono Syndrome 23.01.2007 22:16

Re: Частичное текстурирование примитива.
 
Все ясно, спасибо...

ЛысыЙ_Чук-Иванчук 23.01.2007 22:16

Re: Частичное текстурирование примитива.
 
+1

Chrono Syndrome 23.01.2007 22:38

Re: Частичное текстурирование примитива.
 
Да, вот еще что !
Цитата:

Именно так почему-то рекомендуют создавать скайбоксы в семплах для Блица.
Выложи код, если не трудно...

Тарас Шевченко 23.01.2007 22:58

Re: Частичное текстурирование примитива.
 
Function MakeSkyBox()

m=CreateMesh()
;front face
b=LoadBrush("textures/SKY/sky_FR.bmp",49 )
s=CreateSurface( m,b )
AddVertex s,-1,+1,-1,0,0:AddVertex s,+1,+1,-1,1,0
AddVertex s,+1,-1,-1,1,1:AddVertex s,-1,-1,-1,0,1
AddTriangle s,0,1,2:AddTriangle s,0,2,3
FreeBrush b
;right face
b=LoadBrush("textures/SKY/sky_LF.bmp",49 )
s=CreateSurface( m,b )
AddVertex s,+1,+1,-1,0,0:AddVertex s,+1,+1,+1,1,0
AddVertex s,+1,-1,+1,1,1:AddVertex s,+1,-1,-1,0,1
AddTriangle s,0,1,2:AddTriangle s,0,2,3
FreeBrush b
;back face
b=LoadBrush("textures/SKY/sky_BK.bmp",49 )
s=CreateSurface( m,b )
AddVertex s,+1,+1,+1,0,0:AddVertex s,-1,+1,+1,1,0
AddVertex s,-1,-1,+1,1,1:AddVertex s,+1,-1,+1,0,1
AddTriangle s,0,1,2:AddTriangle s,0,2,3
FreeBrush b
;left face
b=LoadBrush("textures/SKY/sky_RT.bmp",49 )
s=CreateSurface( m,b )
AddVertex s,-1,+1,+1,0,0:AddVertex s,-1,+1,-1,1,0
AddVertex s,-1,-1,-1,1,1:AddVertex s,-1,-1,+1,0,1
AddTriangle s,0,1,2:AddTriangle s,0,2,3
FreeBrush b
;top face
b=LoadBrush("textures/SKY/sky_UP.bmp",49 )
s=CreateSurface( m,b )
AddVertex s,-1,+1,+1,0,1:AddVertex s,+1,+1,+1,0,0
AddVertex s,+1,+1,-1,1,0:AddVertex s,-1,+1,-1,1,1
AddTriangle s,0,1,2:AddTriangle s,0,2,3
FreeBrush b



ScaleMesh m,100,100,100
FlipMesh m
EntityFX m,9
EntityOrder m,10
Return m


End Function

HolyDel 24.01.2007 01:47

Re: Частичное текстурирование примитива.
 
А чем вам кубемапа неугодила? :"( ею можно затекстурить куб созданный в блитзе, так как надо. И даже не только куб, но и ШАР ;)
имхо - проще.

jimon 24.01.2007 08:48

Re: Частичное текстурирование примитива.
 
HolyDel
ты явно не понял че требуется

Chrono Syndrome 24.01.2007 12:52

Re: Частичное текстурирование примитива.
 
Да, видимо и правда, что все дороги земные ведут в Крематорий >.< ...

Выложенный Тарасом код не работает, если оттуда выкинуть любые упоминания о Brush'ах. Значит, такой теперь вопрос: как смоделить в Max'е незатекстурированный куб с шестью сурфейсами (ну, по одному на каждую грань) ?

Тарас Шевченко 24.01.2007 13:34

Re: Частичное текстурирование примитива.
 
Цитата:

Сообщение от Chrono Syndrome
Да, видимо и правда, что все дороги земные ведут в Крематорий >.< ...

Выложенный Тарасом код не работает, если оттуда выкинуть любые упоминания о Brush'ах. Значит, такой теперь вопрос: как смоделить в Max'е незатекстурированный куб с шестью сурфейсами (ну, по одному на каждую грань) ?

После функции создания скайбокса напиши
sky=MakeSkyBox()
ScaleEntity sky,15,15,15

Chrono Syndrome 24.01.2007 14:09

Re: Частичное текстурирование примитива.
 
Цитата:

Сообщение от Тарас Шевченко
После функции создания скайбокса напиши
sky=MakeSkyBox()
ScaleEntity sky,15,15,15

А зачем, если эта функция у меня не запускается (MAV) ?

Platon 24.01.2007 14:20

Re: Частичное текстурирование примитива.
 
>>как смоделить в Max'е незатекстурированный куб с шестью сурфейсами (ну, по одному на каждую грань) ?
Создаешь куб - на панеле инструментов нажимаешь кнопку с нарисованым кубом, справа на панельке в свитке Creation Method выбирай Cube и протягивай мышкой на одной из проекции, после чего кликай мышкой и протягивай еще раз (3-е измерение) с последующим кликом. Справа появится панелька со параметрами только что созданной фигуры. В ней отредактируй, если необходимо, размер. Далее тыкай левой кнопкой мыши на кнопке с изображением крестика(вверху на панеле инструментов), после чего тыкай на нее же правой кнопкой мышки. Появится окошко в котором можно отредактировать позицию фигуры(Absolute world) - ставь по всем осям ноль. Далее нажимаешь, в одной из 4ех проекций, правой кнопкой мыши на фигуре и выбираешь в появившемся меню пункт Convert to\Convert to editable mesh. После чего справа появится панелька со списком модификаторов Modifier list. В нем будет свернутый список Editable mesh.
Разворачивай его и выбери один из режимов редактирования сетки - Polygon. Перейди к проекции в 3D и выделяя каждую грань левой кнопкой мыши, нажимай правую кнопку и в появившемся меню выбирай detach. Будет появляется окошко с возможностью изменить название новому обьекту, можно просто нажать OK. Все, если будешь экспортировать через Pipeline, то каждой грани нужно присвоить уникальный материал, иначе мешь не разделиться на сурфейсы. Для 3ds вроде не надо материалов. Расположение панелей может отличаться, но по умолчанию так.:-)


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

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