|
Xors3D Графический движок с поддержкой DirectX9 |
22.09.2014, 17:15
|
#1
|
Оператор ЭВМ
Регистрация: 03.09.2014
Сообщений: 20
Написано 2 полезных сообщений (для 2 пользователей)
|
Как наложить текстуру только на одну грань куба?
Такое возможно, я знаю, колитесь как!
|
(Offline)
|
|
22.09.2014, 20:23
|
#2
|
Ференька
Регистрация: 26.01.2007
Адрес: улица Пушкина дом Колотушкина
Сообщений: 10,742
Написано 5,461 полезных сообщений (для 15,675 пользователей)
|
Ответ: Как наложить текстуру только на одну грань куба?
Когда куб создан через xCreateCube то никак.
Надо создавать эту грань отдельно.
Вот пример функции где создаётся куб, на каждую сторону которого кладётся отдельная текстура.
Function mLoadSkyBox%(Dir$,Typ$="jpg")
Local Mesh%=xCreateMesh()
Local Brush%,Texture%,Surf%,v0%,v1%,v2%,v3%
; Left
If FileType(Dir+"\"+"left."+Typ)<>0
Texture=xLoadTexture(Dir+"\"+"left."+Typ,49)
Brush=xCreateBrush()
xBrushTexture Brush,Texture
Surf=xCreateSurface(Mesh,Brush)
v0=xAddVertex(Surf,-1, 1,-1,0,0)
v1=xAddVertex(Surf,-1, 1, 1,1,0)
v2=xAddVertex(Surf,-1,-1,-1,0,1)
v3=xAddVertex(Surf,-1,-1, 1,1,1)
xAddTriangle Surf,v2,v1,v0
xAddTriangle Surf,v1,v2,v3
EndIf
; Front
If FileType(Dir+"\"+"front."+Typ)<>0
Texture=xLoadTexture(Dir+"\"+"front."+Typ,49)
Brush=xCreateBrush()
xBrushTexture Brush,Texture
Surf=xCreateSurface(Mesh,Brush)
v0=xAddVertex(Surf,-1, 1,1,0,0)
v1=xAddVertex(Surf, 1, 1,1,1,0)
v2=xAddVertex(Surf,-1,-1,1,0,1)
v3=xAddVertex(Surf, 1,-1,1,1,1)
xAddTriangle Surf,v2,v1,v0
xAddTriangle Surf,v1,v2,v3
EndIf
; Right
If FileType(Dir+"\"+"right."+Typ)<>0
Texture=xLoadTexture(Dir+"\"+"right."+Typ,49)
Brush=xCreateBrush()
xBrushTexture Brush,Texture
Surf=xCreateSurface(Mesh,Brush)
v0=xAddVertex(Surf,1, 1, 1,0,0)
v1=xAddVertex(Surf,1, 1,-1,1,0)
v2=xAddVertex(Surf,1,-1, 1,0,1)
v3=xAddVertex(Surf,1,-1,-1,1,1)
xAddTriangle Surf,v2,v1,v0
xAddTriangle Surf,v1,v2,v3
EndIf
; Back
If FileType(Dir+"\"+"back."+Typ)<>0
Texture=xLoadTexture(Dir+"\"+"back."+Typ,49)
Brush=xCreateBrush()
xBrushTexture Brush,Texture
Surf=xCreateSurface(Mesh,Brush)
v0=xAddVertex(Surf, 1, 1,-1,0,0)
v1=xAddVertex(Surf,-1, 1,-1,1,0)
v2=xAddVertex(Surf, 1,-1,-1,0,1)
v3=xAddVertex(Surf,-1,-1,-1,1,1)
xAddTriangle Surf,v2,v1,v0
xAddTriangle Surf,v1,v2,v3
EndIf
; Bottom
If FileType(Dir+"\"+"bottom."+Typ)<>0
Texture=xLoadTexture(Dir+"\"+"bottom."+Typ,49)
Brush=xCreateBrush()
xBrushTexture Brush,Texture
Surf=xCreateSurface(Mesh,Brush)
v0=xAddVertex(Surf,-1,-1, 1,0,0)
v1=xAddVertex(Surf, 1,-1, 1,1,0)
v2=xAddVertex(Surf,-1,-1,-1,0,1)
v3=xAddVertex(Surf, 1,-1,-1,1,1)
xAddTriangle Surf,v2,v1,v0
xAddTriangle Surf,v1,v2,v3
EndIf
; Top
If FileType(Dir+"\"+"top."+Typ)<>0
Texture=xLoadTexture(Dir+"\"+"top."+Typ,49)
Brush=xCreateBrush()
xBrushTexture Brush,Texture
Surf=xCreateSurface(Mesh,Brush)
v0=xAddVertex(Surf,-1, 1, 1,0,0)
v1=xAddVertex(Surf,-1, 1,-1,1,0)
v2=xAddVertex(Surf, 1, 1, 1,0,1)
v3=xAddVertex(Surf, 1, 1,-1,1,1)
xAddTriangle Surf,v2,v1,v0
xAddTriangle Surf,v1,v2,v3
EndIf
xEntityFX Mesh,1+8
xFlipMesh Mesh
xUpdateNormals Mesh
Return Mesh
End Function
__________________
Мои проекты:
Анальное Рабство
Зелёный Слоник
Дмитрий Маслов*
Различие**
Клюква**
* — в стадии разработки
** — в стадии проектирования
Для проектов в стадии проектирования приведены кодовые имена
|
(Offline)
|
|
Эти 2 пользователя(ей) сказали Спасибо ABTOMAT за это полезное сообщение:
|
|
25.09.2014, 10:49
|
#3
|
Принтер
Регистрация: 21.04.2013
Адрес: Больше не РФ
Сообщений: 570
Написано 342 полезных сообщений (для 1,242 пользователей)
|
Ответ: Как наложить текстуру только на одну грань куба?
Да, придется создавать свой куб.
А cubemap'ы? Или это из другой оперы?
|
(Offline)
|
|
25.09.2014, 12:53
|
#4
|
Ференька
Регистрация: 26.01.2007
Адрес: улица Пушкина дом Колотушкина
Сообщений: 10,742
Написано 5,461 полезных сообщений (для 15,675 пользователей)
|
Ответ: Как наложить текстуру только на одну грань куба?
Ну я понял вопрос не как про кубемапы потому что иначе бы автор наверное сказал что его вопрос касается кубемап.
__________________
Мои проекты:
Анальное Рабство
Зелёный Слоник
Дмитрий Маслов*
Различие**
Клюква**
* — в стадии разработки
** — в стадии проектирования
Для проектов в стадии проектирования приведены кодовые имена
|
(Offline)
|
|
25.09.2014, 13:12
|
#5
|
Принтер
Регистрация: 21.04.2013
Адрес: Больше не РФ
Сообщений: 570
Написано 342 полезных сообщений (для 1,242 пользователей)
|
Ответ: Как наложить текстуру только на одну грань куба?
Вообще, если это для майнкрафта, то, как писали ранее, неправильно рисовать блоки просто кубами, ибо с увеличением мира наступает жесткий стаковерфлоу, мемеори аксесс волэйшон и проч.
Дерзай, короче.
Также полезно для майна юзать SVO, ИМХО.
|
(Offline)
|
|
25.09.2014, 17:44
|
#6
|
Социал-сычевист
Регистрация: 24.06.2011
Сообщений: 611
Написано 342 полезных сообщений (для 1,359 пользователей)
|
Ответ: Как наложить текстуру только на одну грань куба?
Сообщение от ABTOMAT
Texture=xLoadTexture(Dir+"\"+"top."+Typ,49)
Brush=xCreateBrush()
xBrushTexture Brush,Texture[/code]
|
Блин, зачем ты ему это показал... Теперь он своими кубами будет выёбывать до кипятка жёсткий диск
|
(Offline)
|
|
25.09.2014, 18:46
|
#7
|
Ференька
Регистрация: 26.01.2007
Адрес: улица Пушкина дом Колотушкина
Сообщений: 10,742
Написано 5,461 полезных сообщений (для 15,675 пользователей)
|
Ответ: Как наложить текстуру только на одну грань куба?
Код не мой, я просто скопипастил В контексте примера (загрузка скайбокса) это нормально, так как грузится один раз за запуск. Если человек умеет голову включать, он и сам догадается.
__________________
Мои проекты:
Анальное Рабство
Зелёный Слоник
Дмитрий Маслов*
Различие**
Клюква**
* — в стадии разработки
** — в стадии проектирования
Для проектов в стадии проектирования приведены кодовые имена
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
27.09.2014, 14:33
|
#8
|
Оператор ЭВМ
Регистрация: 03.09.2014
Сообщений: 20
Написано 2 полезных сообщений (для 2 пользователей)
|
Ответ: Как наложить текстуру только на одну грань куба?
Нашёл более лучшее решение проблемы!
1. Создать нужный куб в 3ds max и наложить текстуру.
2. Загрузить этот куб.
А за ответы спасибо!
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
27.09.2014, 16:22
|
#9
|
Принтер
Регистрация: 21.04.2013
Адрес: Больше не РФ
Сообщений: 570
Написано 342 полезных сообщений (для 1,242 пользователей)
|
Ответ: Как наложить текстуру только на одну грань куба?
Скрытый текст (вы должны войти под своим логином или зарегистрироваться и иметь 100 сообщение(ий)):
У вас нет прав, чтобы видеть скрытый текст, содержащийся здесь.
|
|
(Offline)
|
|
Эти 8 пользователя(ей) сказали Спасибо KCEPOKC за это полезное сообщение:
|
|
27.09.2014, 19:44
|
#10
|
Ференька
Регистрация: 26.01.2007
Адрес: улица Пушкина дом Колотушкина
Сообщений: 10,742
Написано 5,461 полезных сообщений (для 15,675 пользователей)
|
Ответ: Как наложить текстуру только на одну грань куба?
Сообщение от KCEPOKC
*** скрытый текст ***
|
Ну а чего? Человек по крайней мере решил проблему. В реальном мире деньги платят не за ваш навык программирования, а за решение поставленных проблем, разве нет?
__________________
Мои проекты:
Анальное Рабство
Зелёный Слоник
Дмитрий Маслов*
Различие**
Клюква**
* — в стадии разработки
** — в стадии проектирования
Для проектов в стадии проектирования приведены кодовые имена
|
(Offline)
|
|
Эти 7 пользователя(ей) сказали Спасибо ABTOMAT за это полезное сообщение:
|
|
28.09.2014, 20:24
|
#11
|
Принтер
Регистрация: 21.04.2013
Адрес: Больше не РФ
Сообщений: 570
Написано 342 полезных сообщений (для 1,242 пользователей)
|
Ответ: Как наложить текстуру только на одну грань куба?
Скрытый текст (вы должны войти под своим логином или зарегистрироваться и иметь 100 сообщение(ий)):
У вас нет прав, чтобы видеть скрытый текст, содержащийся здесь.
|
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 23:27.
|