Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для компьютеров > Xors3D

Xors3D Графический движок с поддержкой DirectX9

Ответ
 
Опции темы
Старый 22.09.2014, 17:15   #1
STekLyAToR
Оператор ЭВМ
 
Регистрация: 03.09.2014
Сообщений: 20
Написано 2 полезных сообщений
(для 2 пользователей)
Радость Как наложить текстуру только на одну грань куба?

Такое возможно, я знаю, колитесь как!
(Offline)
 
Ответить с цитированием
Старый 22.09.2014, 20:23   #2
ABTOMAT
Ференька
 
Аватар для ABTOMAT
 
Регистрация: 26.01.2007
Адрес: улица Пушкина дом Колотушкина
Сообщений: 10,741
Написано 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 за это полезное сообщение:
Izunad (23.09.2014), KCEPOKC (25.09.2014)
Старый 25.09.2014, 10:49   #3
KCEPOKC
Принтер
 
Аватар для KCEPOKC
 
Регистрация: 21.04.2013
Адрес: Больше не РФ
Сообщений: 569
Написано 342 полезных сообщений
(для 1,242 пользователей)
Ответ: Как наложить текстуру только на одну грань куба?

Да, придется создавать свой куб.

А cubemap'ы? Или это из другой оперы?
__________________
(Offline)
 
Ответить с цитированием
Старый 25.09.2014, 12:53   #4
ABTOMAT
Ференька
 
Аватар для ABTOMAT
 
Регистрация: 26.01.2007
Адрес: улица Пушкина дом Колотушкина
Сообщений: 10,741
Написано 5,461 полезных сообщений
(для 15,675 пользователей)
Ответ: Как наложить текстуру только на одну грань куба?

Ну я понял вопрос не как про кубемапы потому что иначе бы автор наверное сказал что его вопрос касается кубемап.
__________________
Мои проекты:
Анальное Рабство
Зелёный Слоник
Дмитрий Маслов*
Различие**
Клюква**

* — в стадии разработки
** — в стадии проектирования
Для проектов в стадии проектирования приведены кодовые имена

(Offline)
 
Ответить с цитированием
Старый 25.09.2014, 13:12   #5
KCEPOKC
Принтер
 
Аватар для KCEPOKC
 
Регистрация: 21.04.2013
Адрес: Больше не РФ
Сообщений: 569
Написано 342 полезных сообщений
(для 1,242 пользователей)
Ответ: Как наложить текстуру только на одну грань куба?

Вообще, если это для майнкрафта, то, как писали ранее, неправильно рисовать блоки просто кубами, ибо с увеличением мира наступает жесткий стаковерфлоу, мемеори аксесс волэйшон и проч.
Дерзай, короче.

Также полезно для майна юзать SVO, ИМХО.
__________________
(Offline)
 
Ответить с цитированием
Старый 25.09.2014, 17:44   #6
Кирпи4
Социал-сычевист
 
Аватар для Кирпи4
 
Регистрация: 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
ABTOMAT
Ференька
 
Аватар для ABTOMAT
 
Регистрация: 26.01.2007
Адрес: улица Пушкина дом Колотушкина
Сообщений: 10,741
Написано 5,461 полезных сообщений
(для 15,675 пользователей)
Ответ: Как наложить текстуру только на одну грань куба?

Код не мой, я просто скопипастил В контексте примера (загрузка скайбокса) это нормально, так как грузится один раз за запуск. Если человек умеет голову включать, он и сам догадается.
__________________
Мои проекты:
Анальное Рабство
Зелёный Слоник
Дмитрий Маслов*
Различие**
Клюква**

* — в стадии разработки
** — в стадии проектирования
Для проектов в стадии проектирования приведены кодовые имена

(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
STekLyAToR (27.09.2014)
Старый 27.09.2014, 14:33   #8
STekLyAToR
Оператор ЭВМ
 
Регистрация: 03.09.2014
Сообщений: 20
Написано 2 полезных сообщений
(для 2 пользователей)
Ответ: Как наложить текстуру только на одну грань куба?

Нашёл более лучшее решение проблемы!
1. Создать нужный куб в 3ds max и наложить текстуру.
2. Загрузить этот куб.
А за ответы спасибо!
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
ABTOMAT (27.09.2014)
Старый 27.09.2014, 16:22   #9
KCEPOKC
Принтер
 
Аватар для KCEPOKC
 
Регистрация: 21.04.2013
Адрес: Больше не РФ
Сообщений: 569
Написано 342 полезных сообщений
(для 1,242 пользователей)
Ответ: Как наложить текстуру только на одну грань куба?

Скрытый текст (вы должны войти под своим логином или зарегистрироваться и иметь 100 сообщение(ий)):
У вас нет прав, чтобы видеть скрытый текст, содержащийся здесь.
__________________
(Offline)
 
Ответить с цитированием
Эти 8 пользователя(ей) сказали Спасибо KCEPOKC за это полезное сообщение:
Android (27.09.2014), Arton (27.09.2014), Кирпи4 (27.09.2014), h1dd3n (27.09.2014), MadMedic (28.09.2014), Randomize (27.09.2014), Taugeshtu (27.09.2014), tirarex (27.09.2014)
Старый 27.09.2014, 19:44   #10
ABTOMAT
Ференька
 
Аватар для ABTOMAT
 
Регистрация: 26.01.2007
Адрес: улица Пушкина дом Колотушкина
Сообщений: 10,741
Написано 5,461 полезных сообщений
(для 15,675 пользователей)
Ответ: Как наложить текстуру только на одну грань куба?

Сообщение от KCEPOKC Посмотреть сообщение
*** скрытый текст ***
Ну а чего? Человек по крайней мере решил проблему. В реальном мире деньги платят не за ваш навык программирования, а за решение поставленных проблем, разве нет?
__________________
Мои проекты:
Анальное Рабство
Зелёный Слоник
Дмитрий Маслов*
Различие**
Клюква**

* — в стадии разработки
** — в стадии проектирования
Для проектов в стадии проектирования приведены кодовые имена

(Offline)
 
Ответить с цитированием
Эти 7 пользователя(ей) сказали Спасибо ABTOMAT за это полезное сообщение:
Кирпи4 (29.09.2014), h1dd3n (28.09.2014), jfkkk (30.09.2014), LLI.T.A.L.K.E.R. (29.09.2014), Nex (28.09.2014), Randomize (27.09.2014), Samodelkin (27.09.2014)
Старый 28.09.2014, 20:24   #11
KCEPOKC
Принтер
 
Аватар для KCEPOKC
 
Регистрация: 21.04.2013
Адрес: Больше не РФ
Сообщений: 569
Написано 342 полезных сообщений
(для 1,242 пользователей)
Ответ: Как наложить текстуру только на одну грань куба?

Скрытый текст (вы должны войти под своим логином или зарегистрироваться и иметь 100 сообщение(ий)):
У вас нет прав, чтобы видеть скрытый текст, содержащийся здесь.
__________________
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Кирпи4 (29.09.2014)
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


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


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com