Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.06.17;
Скачать: CL | DM;

Вниз

Lightmap   Найти похожие ветки 

 
VolanD666   (2006-03-24 16:40) [0]

Привет, мастера!
У меня проблема, связанная с не стыковкой карты освещенности на двух треугольниках: http://www.gamedev.ru/images/?id=10484.
Подскажите, плиз, как это исправить!


 
VolanD666   (2006-03-24 16:43) [1]

Код для получения UV веторов такой:

D3DXVECTOR3 vec1, vec2, vec3;
float l1, l2, l3, mLenght, lV;
float Dot;

// Получаем нормаль
CreateNormal( &(*trInfo).Normal, (*tp0).XYZ, (*tp1).XYZ, (*tp2).XYZ );

// Получаем вектора-стороны треугольника
vec1=(*tp1).XYZ-(*tp0).XYZ;
vec2=(*tp2).XYZ-(*tp1).XYZ;
vec3=(*tp0).XYZ-(*tp2).XYZ;

// Получаем длины сторон треугольника
l1=D3DXVec3Length( &vec1 );
l2=D3DXVec3Length( &vec2 );
l3=D3DXVec3Length( &vec3 );

// Находим максимальную длину
mLenght=max( l1, max( l2, l3 ) );

// Если первая сторона самая длинная
if ( mLenght==l1 ){
 
 (*trInfo).StartPoint=(*tp0).XYZ;
 (*trInfo).U=vec1;

 D3DXVec3Normalize( &vec1, &vec1 );
 D3DXVec3Normalize( &vec3, &vec3 );

 Dot= D3DXVec3Dot( &vec1, &vec3 );
 lV= sqrt( 1-Dot*Dot )*l3;

 D3DXVec3Cross( &(*trInfo).V, &(*trInfo).Normal, &(*trInfo).U );
 D3DXVec3Normalize( &(*trInfo).V, &(*trInfo).V );

 (*trInfo).V*=lV;

 // Устанавливаем текстурные координаты
 (*tp0).Tex2=D3DXVECTOR2( 0.0f, 0.0f );
 (*tp1).Tex2=D3DXVECTOR2( 1.0f, 0.0f );
 (*tp2).Tex2=D3DXVECTOR2( fabs( Dot )*l3/l1 , 1.0f );
 
}


Может ошибка здесь?


 
XProger ©   (2006-03-24 17:08) [2]

ах ты подлый сипиписьник ;)

Вообщем, эти 2 треугольника, должны образовывать прямоугольный многоугольник, а не трапецию ;)


 
VolanD666   (2006-03-24 17:37) [3]

Что- то я не совсем понял. Это же два разных треугольника сразными текстурами даже... :)


 
VolanD666   (2006-03-24 17:37) [4]

Что- то я не совсем понял. Это же два разных треугольника сразными текстурами даже... :)

Builder must die...


 
VolanD666   (2006-03-24 17:38) [5]

Сорри, за дубль...


 
XProger ©   (2006-03-24 17:52) [6]

Всмысле, может у тебя такая бяка
http://www.gamedev.ru/forum/?group=0&topic=11108


 
VolanD666   (2006-03-24 18:35) [7]

Нееет, у меня не трапеции! Эта картинка состоит из двух треугольников, на каждый из них наложена отдельная текстура, при этом текстурные координаты вычисляются правильно ( я проверял )...


 
XProger ©   (2006-03-24 19:25) [8]

VolanD666, т.е. текстура лайтмэпа треугольника подобна самому треугольнику?


 
VolanD666   (2006-03-24 19:38) [9]

Ага.


 
VolanD666   (2006-03-25 14:10) [10]

Просто я только начал разбираться с lightmap. И пока их не научился паковать, поэтому пока для каждого треугольника создается своя текстура и свои текстурные координаты...


 
Текстур   (2006-03-28 03:57) [11]

Как рассчитываются лайтмэпы на Дельфи? Дайте кто-нибудь статью с примером?


 
VolanD666   (2006-03-28 06:44) [12]

Если OpenGL, то сюды http://boogesoft.narod.ru/Projects.html,
а сама статья на GameDev.ru


 
Текстур   (2006-03-30 06:51) [13]

А как на GLScene, а не на OpenGL?
И где на gamedev статья?


 
VolanD666   (2006-03-31 07:08) [14]

http://www.gamedev.ru/articles/?id=30102


 
Лайт   (2006-04-02 02:43) [15]

Как правильно расспоожить треугольники на битмэпе? Они же все разные. Большие, маленькие. И наклонены по-разному. Может кто нибудь дать алгоритм на Дельфи?


 
VolanD666   (2006-04-02 15:49) [16]

http://www.blackpawn.com/texts/lightmaps/default.html


 
Нетерпение   (2006-04-03 01:53) [17]

Нашёл лайтмэпы для GLScene, только не пойму как их заставить работать. Что-то с ними не то. Млин, ну неужели до сих пор их никто не сделал нормально?


 
VolanD666   (2006-04-03 06:23) [18]


> не пойму как их заставить работать

Написать самому :)


 
Жирный   (2006-04-07 04:46) [19]

> VolanD666   (02.04.06 15:49) [16]
> http://www.blackpawn.com/texts/lightmaps/default.html
А с кодом на Дельфи?


 
VolanD666   (2006-04-07 06:29) [20]

Жирный, там рассказывается про упаковку lightmap, достаточно понять теория и можно самому код написать :-)


 
Подчёркнутый   (2006-04-08 03:34) [21]

Зачем самому писать велосипед?


 
XProger ©   (2006-04-08 08:07) [22]

Подчёркнутый, чтобы моск работал


 
VolanD666   (2006-04-08 15:46) [23]

:-)


 
Курсив   (2006-04-09 03:37) [24]

Ну, так напиши, да запости.


 
Light   (2006-07-27 04:10) [25]


> VolanD666   (02.04.06 15:49) [16]
> http://www.blackpawn.com/texts/lightmaps/default.html

После проведения линий A B C D дальше то где проводить линии?
Если все полигоны как 1, то они и лягут все вдоль одного борта, а если как 2, то вдоль другого. Если же класть в центр, то они выложатся по диагонали. Короче как добиться квадратичности? Кто нибудь вообще пытался до меня это запрограммироват, что там написано? И как успехи?


 
Light   (2006-07-28 05:21) [26]

Короче этого никто не делал?


 
VolanD666   (2006-07-28 18:41) [27]

После добавления очередного lightmapa в дерево надо вставить ( в свободное место ) структуру типа:
   A
  / \
 B   *
/  \
1    *

*- пустые места, оставшиеся после деления
A, B- линии разделения
1- сам lightmap


 
Light   (2006-07-29 04:11) [28]


> VolanD666   (28.07.06 18:41) [27]
>
> После добавления очередного lightmapa в дерево надо вставить
> ( в свободное место ) структуру типа:


Ненадо повторять то, что написано в статье.

Ты лично это делал?

Если да, то как линии дальше проводил?



Страницы: 1 вся ветка

Текущий архив: 2007.06.17;
Скачать: CL | DM;

Наверх




Память: 0.53 MB
Время: 0.02 c
1-1176899250
webpauk
2007-04-18 16:27
2007.06.17
размер иконок


8-1159608439
Lyberzon
2006-09-30 13:27
2007.06.17
Не работает процедура


15-1179825442
vajo
2007-05-22 13:17
2007.06.17
BDS2006 - C++ Builder. Преобразование числа в строку


2-1179993652
roughneck
2007-05-24 12:00
2007.06.17
DLL + MDI окна


15-1179689134
Kostafey
2007-05-20 23:25
2007.06.17
Как вникать в структуру базы данных ?