![]() |
Вообщем я файл состоит из записей в которых хранится угол и координаты камеры я подгружаю и все это в кучу слепливается :( . Координаты вроде подгружаются проверял RuntimeError'ом :) . Возможно я что-то нетак с типами делаю ...
Вот скрин : ![]() Вот кусок код Код:
; ------------ Функция подгрузки из cam'а |
И еще кое что раз уже начал задавать вопросы :) как убрать эйджи которые делят 4вертексные полигоны на триугольники .
|
Мне кажется все дело в типах вот сижу и думаю :) . Сейчас попытался получить инфу о опеределенном обьекте - ничего невыходин хотя я хендл сохранял , наверно я както с типом непрвильно работаю .
|
Насчет сетки - рендер вручную, линиями. Либо квад с альфа-тексой затайленой.
Да, ошибка может быть в несоответствии алгоритма сохранения и загрузки, округления флоата вследствие юзанья целого, несоотвествие структур. |
Цитата:
|
Цитата:
Я Платон , если что:))) |
А зачем ты сначала создаешь объект в типе:
[blitz] CamNode\CamMarker = CopyEntity(CameraMarker)[/blitz] а потом удаляешь сам тип оставляя объет [blitz]Delete CamNode[/blitz] хэндл объекта ты точно потерял... |
И еще спросить хотел, почему ты не пользуешься стандартными функциями чтения из файла?
[blitz]ReadInt (filehandle/stream) ReadFloat (filehandle/stream)[/blitz] к тому же я не понял из какого файла ты данные читаешь :dontknow: еще убедись что: [blitz]FRead()[/blitz] объявлена как: [blitz]FRead#()[/blitz] |
Щя выложу полный код , а пока структура файла :
Файл состоит из записей , каждая размером по 36 байт , запись делится на 9 полей по 4 байта 1 4байта - ID 2 4байта - я точно незнаю но это и ненужно :) 3,4,5 4байта - XYZ положение 6,7,8,9 4 байт - Угол XYZW ( в кватернионах ) 2PAX Я пока неочень понял как типы работают . Напиши пожалуйста как исправить это дело . Вот код : Код:
; Включения |
Вот явная ошибка:
[blitz]Function FRead() Return ReadFloat(camFile) End Function[/blitz] А надо [blitz]Function FRead#() Return ReadFloat(camFile) End Function[/blitz] остальное посмотрю, скинь файл для тестов который ты загружаешь |
Совет: не используй глобальные переменные там где можно обойтись без них.
Функцию чтения можно написать так: [blitz]; Функция чтения cam файла Function ReadCam(filename$) Local camFile% = OpenFile(filename) Local SizFile% = FileSize(filename) For i = 1 To SizFile / 36 CamNode.TCamNode = New TCamNode CamNode\Rot.Rotation = New Rotation Quatr.Quat = New Quat CamNode\Id = ReadInt(camFile) CamNode\Hz = ReadInt(camFile) CamNode\PosX = ReadFloat(camFile) CamNode\PosY = ReadFloat(camFile) CamNode\PosZ = ReadFloat(camFile) Quatr\x = ReadFloat(camFile) Quatr\y = ReadFloat(camFile) Quatr\z = ReadFloat(camFile) Quatr\w = ReadFloat(camFile) CamNode\CamMarker = CopyEntity(CameraMarker) PositionEntity CamNode\CamMarker,CamNode\PosX,CamNode\PosY,CamNod e\PosZ QuatToEuler(CamNode\Rot,Quatr) RotateEntity CamNode\CamMarker,CamNode\Rot\yaw,CamNode\Rot\roll ,CamNode\Rot\Pitch EntityPickMode CamNode\CamMarker,2 Delete Quatr Delete CamNode ;Подумай стоит ли удалять этот объект Next ;RuntimeError(i) End Function[/blitz] типы ы Blitz'е это теже структуры как и в C++, за исключением некоторых возможностей... |
Я вообще непонимаю зачем их переменные типов сразу после использования , почему их неудалить в конце программы . Я просто на блитз недавно перешел , а про то что удалять надо поле использования в статье прочитал .
PAX спасибо . |
Вложений: 2
Такс вот 2 файла , в том который мало весит 9 записей но отображается почемуто только одна камера хотя у других координаты тоже нормальные.
|
Часовой пояс GMT +4, время: 09:44. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot