Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > разработка игр, графический дизайн и моделирование > Gamedev - cоздание игр: Unity, OpenGL, DirectX
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 05.05.2012, 22:56   #11
Vova777
Уважаемый
Форумчанин
 
Аватар для Vova777
 
Регистрация: 04.07.2010
Сообщений: 318
По умолчанию

Цитата:
Сообщение от Beermonza Посмотреть сообщение
Vova777, и видимо ошибка "Undeclared identifier", да?
Код:
LGLArraysVertexCount := FGLArraysVertexCount * 3;
Я понял о чем Вы подумали, но нет, это разные массивы, а ошибка там другая, сейчас я не могу сказать какая, дело в том, что сейчас я сцену рендерю в 3DsMax-е, процессор перегружен и Delphi долго грузится будет, а рендерится она будет еще долго, я завтра точный текст ошибки приведу.
даешь высокое напряжение
Vova777 вне форума Ответить с цитированием
Старый 05.05.2012, 23:20   #12
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Я вообще думаю что не на этой строке проблема. Отладчик не всегда показывает точное место ошибки.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 05.05.2012, 23:44   #13
Beermonza
Инженер ИС
Старожил
 
Аватар для Beermonza
 
Регистрация: 13.12.2006
Сообщений: 2,671
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Я вообще думаю что не на этой строке проблема. Отладчик не всегда показывает точное место ошибки.
Разумеется, ошибка ползет из другого места. Отладчик не знает как вести себя с переменной FGLArraysVertexCount, судя по первой букве - это классовая переменная, к ней возможно нет доступа, этого тут не показано. Если она вообще не декларирована, то будет ошибка "Undeclared identifier FGLArraysVertexCount", если ее тип отличен от числового, то посмотреть нужно, что показывает помощник, несовместимость типов "Incompatible types", или что-то конкретно. А LGLArraysVertexCount создана непосредственно в процедуре, которую представил автор темы.
Руководитель проекта MMO 2D RPG: Настоящее имя Денис Стрижак (10.05.1981-6.02.2019) Мир духу его
Beermonza вне форума Ответить с цитированием
Старый 06.05.2012, 09:59   #14
Vova777
Уважаемый
Форумчанин
 
Аватар для Vova777
 
Регистрация: 04.07.2010
Сообщений: 318
По умолчанию

Process asetest.exe raised exeption class EAccessViolation with message 'Access violation at address 00454495 in module 'asetest.exe'. Read of address 0000002C'. Process stopped. Use Step or Run to continue.

Дело в том, что та ASE-модель, которая идет вместе с этим примером, она обрабатывается без проблем, а любые другие ASE-модели не обрабатываются, на них вот эта ошибка.
даешь высокое напряжение
Vova777 вне форума Ответить с цитированием
Старый 06.05.2012, 15:36   #15
Beermonza
Инженер ИС
Старожил
 
Аватар для Beermonza
 
Регистрация: 13.12.2006
Сообщений: 2,671
По умолчанию

Цитата:
Сообщение от Vova777 Посмотреть сообщение
Process asetest.exe raised exeption class EAccessViolation with message 'Access violation at address 00454495 in module 'asetest.exe'. Read of address 0000002C'. Process stopped. Use Step or Run to continue.
Ошибка доступа. Где-то твоя переменная FGLArraysVertexCount не может считать данные со структуры. Изучи два файла ASE, рабочий и твой, на предмет различия. 3Ds Max много чего еще может включить в файл, ...он вроде нормально читается текстовым редактором.
Руководитель проекта MMO 2D RPG: Настоящее имя Денис Стрижак (10.05.1981-6.02.2019) Мир духу его
Beermonza вне форума Ответить с цитированием
Старый 06.05.2012, 15:47   #16
Vova777
Уважаемый
Форумчанин
 
Аватар для Vova777
 
Регистрация: 04.07.2010
Сообщений: 318
По умолчанию

На самом деле, не все так просто.
Конечно же, я уверен, что ошибка произошла из-за различия файлов:
1. Дело в том ASE не открывается в 3D Max без плагина-конвертера, а конвертеры преобразуют файл так, что его исходная структура начинает отличатся от оригинала. Даже если получится открыть файл, есть вероятность того, что ключевых моментов я там не увижу.
2. Но ведь ASE-парсеры должны быть написаны так, чтобы открывать любой ASE файл, иначе что это за парсер такой, для одного файла? Это как минимум не серьезно.
3. Я просил подсказать почему происходит ошибка, чтобы понять что не так в моих ASE файлах.
4. ASE открываются текстовым редактором, но в моделе-примере почти 40 объектов с неизвестной структурой, освещением, текстурной картой, а в моем только один, я просто запутаюсь в структуре и все. Дал бы кто полный мануал по структуре ASE.
даешь высокое напряжение

Последний раз редактировалось Vova777; 06.05.2012 в 16:00.
Vova777 вне форума Ответить с цитированием
Старый 06.05.2012, 16:00   #17
Vova777
Уважаемый
Форумчанин
 
Аватар для Vova777
 
Регистрация: 04.07.2010
Сообщений: 318
По умолчанию

Это оригинальный исходник, скачанный мной с одного сайта. В архиве лежит "misaki.ase" - это модель этого примера, "myteapot.ase" - это созданный мной файл. Чтобы его загрузить, нужно в исходнике, в разделе const поменять название файла.
Вложения
Тип файла: rar ASEScene.rar (1.59 Мб, 10 просмотров)
даешь высокое напряжение
Vova777 вне форума Ответить с цитированием
Старый 06.05.2012, 16:04   #18
Beermonza
Инженер ИС
Старожил
 
Аватар для Beermonza
 
Регистрация: 13.12.2006
Сообщений: 2,671
По умолчанию

Vova777, ну, так в поисковике забей ключ, например "ASE формат структура", что-то почитать появится. А вообще, если побыстрее, то можно в режиме отладки запустить код, проставляя точки остановки и далее по строке смотреть считывание с файла, пропуская одинаковые массивы считывания, найдешь различия в файлах.
Руководитель проекта MMO 2D RPG: Настоящее имя Денис Стрижак (10.05.1981-6.02.2019) Мир духу его
Beermonza вне форума Ответить с цитированием
Старый 06.05.2012, 16:07   #19
Vova777
Уважаемый
Форумчанин
 
Аватар для Vova777
 
Регистрация: 04.07.2010
Сообщений: 318
По умолчанию

Цитата:
Сообщение от Beermonza Посмотреть сообщение
Vova777, ну, так в поисковике забей ключ, например "ASE формат структура", что-то почитать появится. А вообще, если побыстрее, то можно в режиме отладки запустить код, проставляя точки остановки и далее по строке смотреть считывание с файла, пропуская одинаковые массивы считывания, найдешь различия в файлах.
Для меня это слишком сложно, я там не пойму я ничего. Лучше посмотрите исходник.
даешь высокое напряжение
Vova777 вне форума Ответить с цитированием
Старый 06.05.2012, 17:42   #20
Beermonza
Инженер ИС
Старожил
 
Аватар для Beermonza
 
Регистрация: 13.12.2006
Сообщений: 2,671
По умолчанию

Цитата:
Сообщение от Vova777 Посмотреть сообщение
Для меня это слишком сложно, я там не пойму я ничего. Лучше посмотрите исходник.
Это проще простого, главное - внимание. Достаточно посмотреть свой ASE-файл, и ты там не найдешь объекты "Obj_000016", "Obj_000017", "Obj_000035" и т.д. Вот смотри:

Код:
procedure TMainForm.FormCreate(Sender: TObject);
begin
  FGLScene := TGLScene.Create;
  try
    FGLScene.LoadFromASE(ASEFileName);
    FGLScene.Scale(1.2);

    // ReverseNormals - Меняем направление нормалей для некоторых объектов.
    // Дело в том, что в ASE - файле, направление некоторых нормалей указано неверно.
    // Поэтому некоторые объекты могут быть отрисованы с неправильным освещением.
    // Возможно, 3DS Max при экспорте моделей неправильно рассчитывает нормали,
    // а возможно просто я их неправильно считываю.
    // Вообщем, если кто-то знает причину этого бага,
    // буду очень благодарен за его разъяснение.
    FGLScene.ReverseNormals;

    FGLScene.GeomObjectByName['Obj_000016'].ReverseNormals; // <- вот тут начало ошибок
    FGLScene.GeomObjectByName['Obj_000017'].ReverseNormals;
    FGLScene.GeomObjectByName['Obj_000035'].ReverseNormals;
    FGLScene.GeomObjectByName['Obj_000014'].ReverseNormals;
У тебя только "Teapot01" есть, убирай несуществующие из кода программы.
Руководитель проекта MMO 2D RPG: Настоящее имя Денис Стрижак (10.05.1981-6.02.2019) Мир духу его
Beermonza вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Импорт в Delphi анимированной модели из файла .ASE Vova777 Gamedev - cоздание игр: Unity, OpenGL, DirectX 0 30.04.2012 08:15
TScrollBox и его невидимая область. Как с этим бороться? Смотрим внутри... Vova777 Общие вопросы Delphi 3 17.02.2012 18:38
Как программно изменить цвет "компонента"? Смотрим внутри... Vova777 Общие вопросы Delphi 3 15.02.2012 05:56
.ase и позиция камеры nXs Мультимедиа в Delphi 0 30.11.2010 13:15
Сайт не корректно функционирует в Opera 9 zorky JavaScript, Ajax 0 23.06.2009 16:26