Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Игры";
Текущий архив: 2007.06.17;
Скачать: [xml.tar.bz2];

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.5 MB
Время: 0.046 c
2-1179920714
Просто_новичок
2007-05-23 15:45
2007.06.17
Быстрота циклов


15-1179513213
wp2
2007-05-18 22:33
2007.06.17
Помогите! Похоже я спалил два SATA контроллера.


15-1180008418
vitv
2007-05-24 16:06
2007.06.17
Delphi 7 Кэнту


1-1177001980
Angakok
2007-04-19 20:59
2007.06.17
Непонятная особенность в работе кода


2-1180290744
Bogdan1024
2007-05-27 22:32
2007.06.17
case () of для энумированных величин





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский