Пятница, 29 Марта 2024, 00:00

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Форум игроделов » Записи участника » Valentinus [4]
Результаты поиска
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 результат не меняется.

странно, что даже если в этот момент покрутить (клавишами) кубик внутри другого- никаких коллизий, однако стоит вывести кубик в сторону и "ткнуть" в другой- коллизии начинают фиксироваться!

теперь алгоритм блитца мне вообще непонятен... sad


Автоматический анализатор читаемости Ваших веб-страниц:
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
Форум игроделов » Записи участника » Valentinus [4]
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг