![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Проблема с затекстуриванием
WandR © (2005-05-30 21:46:00)Есть такая демка Archipelago там текстурка разбивается на куски и потом натягивается на ландшафт.
В стандартной демке ландшафт 512х512 и код производящий наложение выглядит так:
var
htfHD : THeightData;
i, j, n : Integer;
offset : TTexPoint;
begin
with heightData do
htfHD:=GLHeightTileFileHDS1.GetData(XLeft, YTop, Size, DataType);
if (htfHD.DataState=hdsNone) then
heightData.DataState:=hdsNone
else begin
i:=(heightData.XLeft div 128);
j:=(heightData.YTop div 128);
if (Cardinal(i)<4) and (Cardinal(j)<4) then begin
heightData.MaterialName:=format('texture_%d_%d.png', [i, j]);
heightData.TextureCoordinatesMode:=tcmLocal;
n:=((heightData.XLeft div 32) and 3);
offset.S:=n*0.25;
n:=((heightData.YTop div 32) and 3);
offset.T:=-n*0.25;
heightData.TextureCoordinatesOffset:=offset;
heightData.TextureCoordinatesScale:=TexPointMake(0.25, 0.25);
heightData.DataType:=hdtSmallInt;
htfHD.DataType:=hdtSmallInt;
heightData.Allocate(hdtSmallInt);
Move(htfHD.SmallIntData^, heightData.SmallIntData^, htfHD.DataSize);
heightData.DataState:=hdsReady;
heightData.HeightMin:=htfHD.HeightMin;
heightData.HeightMax:=htfHD.HeightMax;
end else heightData.DataState:=hdsNone
end;
GLHeightTileFileHDS1.Release(htfHD);
Я решил загрузить ландшафт 1024х1024 соотвецтвенно поменял строки:
i:=(heightData.XLeft div 128);
j:=(heightData.YTop div 128);
на
i:=(heightData.XLeft div 256);
j:=(heightData.YTop div 256);
Но текстура накладывается криво=(
http://kreker.info-com.ru/files/bug.JPG
Кто знает как это поправить?
WandR (2005-06-03 21:32:00) [1]=(
П7 (2005-06-01 18:39:00) [2]А кого это должно волновать? Кроме тебя, конечно... (:
WandR (2005-06-01 18:21:00) [3]Ага GLScene
Народ ну че молчите??? У меня проект простаивает=(
Кефир87 (2005-06-01 17:43:00) [4]А можно задать не скромный вопрос. А с использованием чего это написано? Я видел префик GL... Это ГЛСцен?
WandR (2005-05-31 20:50:00) [5]=)))
Кефир87 (2005-05-31 18:15:00) [6]
> http://kreker.info-com.ru/files/bug2.JPG
А что? Красиво 8)
WandR (2005-05-31 16:09:00) [7]http://kreker.info-com.ru/files/bug2.JPG
WandR (2005-05-31 16:03:00) [8]Это я пробовал первым делом, не катит текстура смазывается...
Zer0 (2005-05-31 14:25:00) [9]
Используй думательное устройство! Не дай развится Фимозу Гойловного Мосга!
ну можно поиграться с
n:=((heightData.XLeft div 32) and 3);
offset.S:=n*0.25;
n:=((heightData.YTop div 32) and 3);
offset.T:=-n*0.25;
heightData.TextureCoordinatesOffset:=offset;
heightData.TextureCoordinatesScale:=TexPointMake(0.25, 0.25);
и вместо цифирь 0.25 вписать 0.5
WandR (2005-05-31 13:40:00) [10]Обламывает=)
WandR (2005-05-31 13:39:00) [11]Обламывает=)
keal (2005-05-31 12:56:00) [12]написать все самому :)