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

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

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

3D-программирование Вопросы, касающиеся программирования 3D мира

Ответ
 
Опции темы
Старый 02.11.2011, 20:05   #1
DStalk
Разработчик
 
Аватар для DStalk
 
Регистрация: 27.06.2009
Адрес: Рязань-Москва
Сообщений: 471
Написано 401 полезных сообщений
(для 1,072 пользователей)
Наложение текстуры по известным 3D координатам

На меш произвольной формы надо наложить текстуру, известна точка наложения в 3D координатах. Как ее наложить или как передвинуть уже наложенную текстуру к нужной точке?
Уже час ищу - ни в примерах ни на форуме похожего не нашел
(Offline)
 
Ответить с цитированием
Старый 02.11.2011, 23:00   #2
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: Наложение текстуры по известным 3D координатам

ну так uv посчитать... нет?
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Старый 02.11.2011, 23:19   #3
DStalk
Разработчик
 
Аватар для DStalk
 
Регистрация: 27.06.2009
Адрес: Рязань-Москва
Сообщений: 471
Написано 401 полезных сообщений
(для 1,072 пользователей)
Ответ: Наложение текстуры по известным 3D координатам

а вот в том и вопрос, как их посчитать из x,y,z?
(Offline)
 
Ответить с цитированием
Старый 02.11.2011, 23:30   #4
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: Наложение текстуры по известным 3D координатам

А как текстуру надо наложить? Какой метод?
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Старый 02.11.2011, 23:32   #5
DStalk
Разработчик
 
Аватар для DStalk
 
Регистрация: 27.06.2009
Адрес: Рязань-Москва
Сообщений: 471
Написано 401 полезных сообщений
(для 1,072 пользователей)
Ответ: Наложение текстуры по известным 3D координатам

Да без разницы, просто текстуру положить, или подвинуть уже наложенную.
(Offline)
 
Ответить с цитированием
Старый 03.11.2011, 00:26   #6
dsd
Мастер
 
Аватар для dsd
 
Регистрация: 13.06.2011
Сообщений: 1,103
Написано 481 полезных сообщений
(для 1,836 пользователей)
Ответ: Наложение текстуры по известным 3D координатам

Если на произвольный то из сферической системы координат, наверно.

Например узнаем координаты точки (x,y,z). Еще есть внутри меша произвольной формы точка, для удобства можно вообразить, что эта точка совпадает с началом системы координат.
Далее приводим вектор (x,y,z) к длине 1. acos(x) даст один угол, acos(y) даст второй. 0 в текстурных координатах равен нулю, 360 1. Профит.
Перед тем как acos(x) находить надо наверно x/y сделать, не знаю почему, но надо, наверно. Или не надо, хз я забыл зачем мне это надо было когда я вектор по двум углам прицеливал.

Да, вот еще, если асосинус выдает ответ в радинанах, то 0 - 0, а 6,28 -1.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
DStalk (03.11.2011)
Старый 03.11.2011, 13:56   #7
ABTOMAT
Ференька
 
Аватар для ABTOMAT
 
Регистрация: 26.01.2007
Адрес: улица Пушкина дом Колотушкина
Сообщений: 10,741
Написано 5,461 полезных сообщений
(для 15,675 пользователей)
Ответ: Наложение текстуры по известным 3D координатам

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

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

(Offline)
 
Ответить с цитированием
Старый 03.11.2011, 15:07   #8
RegIon
Элита
 
Аватар для RegIon
 
Регистрация: 16.01.2010
Адрес: Новосибирск
Сообщений: 2,157
Написано 502 полезных сообщений
(для 1,012 пользователей)
Ответ: Наложение текстуры по известным 3D координатам

Если на произвольный то из сферической системы координат, наверно.

Например узнаем координаты точки (x,y,z). Еще есть внутри меша произвольной формы точка, для удобства можно вообразить, что эта точка совпадает с началом системы координат.
Далее приводим вектор (x,y,z) к длине 1. acos(x) даст один угол, acos(y) даст второй. 0 в текстурных координатах равен нулю, 360 1. Профит.
Перед тем как acos(x) находить надо наверно x/y сделать, не знаю почему, но надо, наверно. Или не надо, хз я забыл зачем мне это надо было когда я вектор по двум углам прицеливал.

Да, вот еще, если асосинус выдает ответ в радинанах, то 0 - 0, а 6,28 -1.
это так-же как привести проэкцию 3д к 2д,только начало отсчёта переменное
__________________
Сайт: http://iexpo.ml
(Offline)
 
Ответить с цитированием
Старый 03.11.2011, 15:08   #9
DStalk
Разработчик
 
Аватар для DStalk
 
Регистрация: 27.06.2009
Адрес: Рязань-Москва
Сообщений: 471
Написано 401 полезных сообщений
(для 1,072 пользователей)
Ответ: Наложение текстуры по известным 3D координатам

Получается что-то вроде этого:
ax#=VectorYaw# (nx#,ny#,nz#)/180
az#=VectorPitch# (nx#,ny#,nz#)/180
PositionTexture tex,ax#,az#
nx#,ny# и nz# - нужная точка относительно центра объекта.
Но корректно работает только с половиной объекта (полусфера например).

Есть мысль порезать объект на две части с двумя отдельными текстурами или один объект с двумя текстурами по разным сторонам. Кстати например у верха и низа сферы текстура сильно искажается, поэтому лучше использовать две текстуры.
__________________
galaxies.su | dstalk.ru
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

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

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


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


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