Результаты поиска
| |
Valentinus | Дата: Пятница, 21 Ноября 2008, 16:00 | Сообщение # 1 | Тема: OGRE |
был не раз
Сейчас нет на сайте
| подтверждаю. во-первых ОГР не для новичков, садиться на него можно только при очень хорошем знании и наличия опыта программирования на С++. во-вторых, нужно хорошо знать английский, ибо русских туторов очень мало, а качество их в плане обучения очень низкое. Единственная книга по ОГРу "Pro OGRE 3D Programming" Gregory Junker (дай бог ему здоровья!) будет вашим единственным толковым помощником. в-третих даже знание английского еще не гарантирует легкого освоения ОГРа, и особенно- плагинов к нему (а они вам потребуются, даже не сомневайтесь). Принятый там за правило doxygen - "генереж" документации из исходников - это пипец. В теории все шоколадно: программист пишет в программе комментарии, на основании которых автоматически генерится файл справки. На практике получается полная жопа (да простят меня модераторы!) - по простому перечню функций и классов очень трудно понять архитектуру плагина, и как его использовать. В-четвертых, ОГР делается и поддерживается "на общественных началах", поэтому бывает вопосы повисают на форуме без ответа, что разработка нужного плагина заброшена уже пару лет, и т.д. в-пятых, понимание только собственного формата mesh для моделей, что в конечном итоге приводит к необходимости возиться с различными плагинами для экспорта, которые не всегда выдают то что вам нужно. и в-шестых, все-таки не рекордные показатели производительности. Ну а чтобы не заканчивать этот пост на грустной ноте, замечу о плюсах ОГРа: кросс-платформенность, бесплатность, наличия плагинов для подключения физики, генерации ландшафтов, скриптов партиклов и многое-другое
Автоматический анализатор читаемости Ваших веб-страниц: http://IC4U.ru?from_gamecreating
|
|
| |
Valentinus | Дата: Пятница, 24 Октября 2008, 00:24 | Сообщение # 2 | Тема: переместить объект и сразу узнать- пересекается ли он с кем? |
был не раз
Сейчас нет на сайте
| вот пример: Code
Graphics3D 640, 480 SetBuffer BackBuffer()
Const TypeC1 = 3, TypeC2 = 4
Global player=CreateSphere() PositionEntity player,10, 0.1, 0 TurnEntity player,0,40,0 EntityRadius player, 1.5 EntityType player, TypePlayer
cam=CreateCamera(player) light=CreateLight(1) PositionEntity light, 1,1,1
Floor1=CreatePlane() PositionEntity Floor1,0,-1,0 EntityColor Floor1,111,0,0
Global cub1=CreateCube() EntityColor cub1,0,111,0
PositionEntity cub1,3, 0.1, 5 TurnEntity cub1,0,0,0 EntityRadius cub1, 1 EntityType cub1, TypeC1
Global cub2=CreateCube() EntityColor cub2,0,0,111
PositionEntity cub2, 9, 0.1, 5 ScaleEntity cub2, 0.9,0.9,0.9 TurnEntity cub2,0,0,0 EntityRadius cub2, 1 EntityType cub2, TypeC2
Collisions TypeC1, TypeC2, 3, 2
ecub1% = EntityCollided(cub1, TypeC2)
UpdateWorld RenderWorld
Text 400,0,"cub1 EntityCollided(): "+ecub1,True,False
While Not KeyDown( 30 ) Wend
;PositionEntity cub2,3.5, 0.1, 5 MoveEntity cub2, -5.5, 0, 0 ;UpdateWorld ecub1% = EntityCollided(cub1, TypeC2)
While Not KeyDown( 1 )
ecub2% = EntityCollided(cub1, TypeC2)
If KeyDown(30) MoveEntity cub1, -0.11, 0, 0
If KeyDown(200) MoveEntity cub1, 0, 0, 0.11 If KeyDown(208) MoveEntity cub1, 0, 0, -0.11 If KeyDown(203) TurnEntity cub1, 0, 2, 0 If KeyDown(205) TurnEntity cub1, 0, -2, 0
ecub3% = EntityCollided(cub1, TypeC2)
UpdateWorld RenderWorld
Text 400,0,"after jump EntityCollided(): "+ecub1,True,False
Text 400,20,"current (before move) EntityCollided(): "+ecub2,True,False
Text 400,40,"current (after move) EntityCollided(): "+ecub3,True,False
Flip Wend End
на плоскости два кубика, задана их коллизия, вверху экрана пишется результат EntityCollided() сначала они не пересекаются: EntityCollided выдает как и положено 0 нажимаем клавишу "А" - один кубик переносим в точку пересечения с другим, и сразу смотрим EntityCollided увы! все тот же ноль! даже если между перемещением и EntityCollided вставить Update World результат не меняется. странно, что даже если в этот момент покрутить (клавишами) кубик внутри другого- никаких коллизий, однако стоит вывести кубик в сторону и "ткнуть" в другой- коллизии начинают фиксироваться! теперь алгоритм блитца мне вообще непонятен...
Автоматический анализатор читаемости Ваших веб-страниц: http://IC4U.ru?from_gamecreating
Сообщение отредактировал Valentinus - Пятница, 24 Октября 2008, 12:54 |
|
| |
Valentinus | Дата: Четверг, 23 Октября 2008, 16:34 | Сообщение # 3 | Тема: переместить объект и сразу узнать- пересекается ли он с кем? |
был не раз
Сейчас нет на сайте
| пробую Blitz3D. вопрос: количество столкновений которые выдает EntityCollided() подсчитывается каждый раз при перемещении объекта, или только вовремя исполнения UpdateWorld? то есть могу я _между_ отрисовками одного кадра (UpdateWorld/RenderWorld) несколько раз переместить объект, найдя позицию, где он ни с кем не пересекается? вопрос проистекает из того, что вызывать UpdateWorld несколько раз (перед отрисовкой) невозможно, так как по этой команде Blitz обновляет анимацию- то есть когда сцена наконец отрисуется- пропустится несколько кадров. Хотелось бы переместить объект и сразу узнать- пересекается ли он с кем нибудь в этой точке или нет.
Автоматический анализатор читаемости Ваших веб-страниц: http://IC4U.ru?from_gamecreating
|
|
| |
Valentinus | Дата: Четверг, 09 Октября 2008, 11:45 | Сообщение # 4 | Тема: Посоветуйте движок, что-то типа блитца |
был не раз
Сейчас нет на сайте
| Quote (vergil010) а вот что может blitz http://www.youtube.com/watch?v=uuccl9ywyKQ впечатлило, несмотря на "застывшую" флору. а исходники этого ролика можно где-то скачать?
Автоматический анализатор читаемости Ваших веб-страниц: http://IC4U.ru?from_gamecreating
Сообщение отредактировал Valentinus - Четверг, 09 Октября 2008, 11:45 |
|
| |
|