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

Вниз

GLScene - GLPortal и GLFreeForm   Найти похожие ветки 

 
Conferno   (2005-11-13 22:03) [0]

Привет мастерам!
Вот, кое-что вычитал из GLSceneFaq"a про порталы.
Пробовал так, как написано, но желаемого результата не получил....
Может кто разберется в коде, портал - вещь незаменимая для модели
уровня(например, закрытого помещения).
Вот то, что я вычитал:

Essentially level rendering, there is a small demo on it that shows a (very)
small subset of what it can do. Lacks decent importers/level editors.

Eric
/////////////////
Can I use portals to render big scenes loaded from files? Loading from
file doesn"t work because the loaders don"t create the Sectors and Polys
 instead of MeshObjects and FaceGroups. So I tought a convertion
function could do the trick. What I got is this:

procedure convert(mesh: TGLBaseMesh; portal: TGLPortal);
var
i, j: integer;
sector: TSectorMeshObject;
mo: TMeshObject;
poly: TFGPolygon;
fc: TFaceGroup;

begin
     for i:= 0 to mesh.MeshObjects.Count -1 do begin
          mo:= mesh.MeshObjects[i];
          sector:= TSectorMeshObject.CreateOwned(Portal.MeshObjects);
          sector.Vertices.assign(mo.Vertices);
          sector.Normals.Assign(mo.Normals);
          sector.Visible:= mo.Visible;
          sector.TexCoords.Assign(mo.TexCoords);
          sector.LighmapTexCoords.Assign(mo.LighmapTexCoords);

          sector.Colors.Assign(mo.Colors);
          sector.Mode:= mo.Mode;
          sector.RenderingOptions:= mo.RenderingOptions;

          //sector.FaceGroups.Assign(mo.FaceGroups);
          for j:= 0 to mo.FaceGroups.Count -1 do begin
               poly:= TFGPolygon.CreateOwned(sector.FaceGroups);
               fc:= mo.FaceGroups[j];
               poly.MaterialName:= fc.MaterialName;
               if fc.InheritsFrom(TFGVertexIndexList) then with

TFGVertexIndexList(fc) do begin
                    poly.VertexIndices.Assign(VertexIndices);
                    poly.Mode:= Mode;
               end;
               if fc.InheritsFrom(TFGVertexNormalTexIndexList) then
with TFGVertexNormalTexIndexList(fc) do begin
                    poly.NormalIndices.Assign(NormalIndices);
                    poly.TexCoordIndices.Assign(TexCoordIndices);
               end;
          end;
     end;
end;

Works all right, I load a mesh file on a freeForm and then convert this
to sectors and polies to the portal object. However, the portal doesn"t
do the culling. The problem is at TPortalMeshObjectList.BuildList; the
camera position (if
Items[i].PointInObject(PAffineVector(@mrci.cameraPosition)^)) never
seems to be inside any sector. I"m thinking this is a coordinate
convertion problem, but so far I haven"t been able to correct is.

У кого какие идеи?


 
Da Stranger ©   (2005-11-14 14:07) [1]

есть демка GLScene\Demos\Meshes\Portal\
+ на http://caperaven.co.za/ раньше лежала очень старая демка portal, но я с ней не разбирался.


 
Conferno   (2005-11-14 23:41) [2]


> есть демка GLScene\Demos\Meshes\Portal\

Ну,  это я есессно знаю.......


> + на http://caperaven.co.za/ раньше лежала очень старая
> демка portal, но я с ней не разбирался.

Я что-то искал-искал на сайте, но так и не нашел.... :(
Не подскажешь где именно?
Или, если ты ее скачивал, не кинешь на мыло?
Порталы - вещь интересная и нужная...


 
Da Stranger ©   (2005-11-15 21:56) [3]

Пример отправил


 
Conferno   (2005-11-15 22:19) [4]

Большое спасибо! Посмотрю...  :)


 
Conferno   (2005-11-17 18:18) [5]

Прикольно работает....
Только не пойму как использовать и увеличивать Quad"ы...



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

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

Наверх




Память: 0.46 MB
Время: 0.008 c
10-1121850324
serjufa
2005-07-20 13:05
2006.07.16
повернуть ячейку со словом на 45 .


2-1151522230
resuS
2006-06-28 23:17
2006.07.16
Запуск приложения. Пользователь в неведении.


15-1150268707
Megabyte
2006-06-14 11:05
2006.07.16
В полку инженеров прибыло! %)


1-1149158328
.ruslan
2006-06-01 14:38
2006.07.16
Цвет шрифта в столбце ListView


2-1151429818
так себе
2006-06-27 21:36
2006.07.16
Ввод допустимых символов





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский