LINUX.ORG.RU

3D движок на C с software renderer


0

2

Доброго всем утра!

А не расскажете ли мне, какие бывают трехмерные игровые движки, написанные на C и с подержкой софтовой отрисовки?

Требования дополнительные были такие: Возможность работать на железе уровня ARM926EJ-S на 150MHz и о 16MB RAM.

Я рассмотрел пока следующие:

quake1/2

doom.

И там и там довольно непросто въехать что и как, очень плохо все документировано. Есть много док про использованные алгоритмы, но мало по коду. Так же мало док по тому, как производить входные данные (графические модели, BSP, etc.). Код достаточно запутан, чтобы его использовать как документацию.

Ищется что-нибудь более простое в модификации/понимании. По функционалу вышеперечисленные бы устроили, и даже слишком.

Проект личный, безденежный, но очень специфический. Железо, где это все будет крутиться - дохлое и без 3D-акселерации.

Надеюсь на любую помощь.

★★★★★

Последнее исправление: slapin (всего исправлений: 2)

а что ты именно хочеш от 3д движка ?
опиши какбы то нужно

насколько я понимаю - нужно что то - что могло на фреймбуфере нарисовать так скажем 3мерный обьект - с текстурами

ae1234 ★★
()

Так же мало док по тому, как производить входные данные (графические модели, BSP, etc.).

А ты искал? Похоже, что нет.

Shtucer
()

150MHz и 16MB RAM.
простое в модификации/понимании.

посмотри в сторону demoscene

если хорошо и вдумчиво гуглить - можно найти довольно старые, но простые и очень нетребовательные движки, и даже на С

q11q11 ★★★★★
()

А софтверный OpenGL не подойдет?
Вроде бы был он в каких-то свободных драйверах.

P.S. Если соберетесь писать движок самостоятельно, рекомендую почитать спеки по OpenGL. Там очень подробно расписаны алгоритмы, по которым строится изображение.

trex6 ★★★★★
()

«Возможность работать на железе уровня ARM926EJ-S на 150MHz и о 16MB RAM». Так и напишите «смартфон». Гулите на тему написания игр для оффтопик Mobile и JAVA.

Rosko
()
Ответ на: комментарий от ae1234

насколько я понимаю - нужно что то - что могло на фреймбуфере

нарисовать так скажем 3мерный обьект - с текстурами

Да, именно это и нужно, плюс какие-нибудь удобные абстракции, чтобы не совсем уж хардкорно.

slapin ★★★★★
() автор топика
Ответ на: комментарий от Rosko

нет, это не смартфон, на железяке крутится Linux.

slapin ★★★★★
() автор топика
Ответ на: комментарий от Manhunt

wikipedia

В минимальных требованиях к аппаратно-программной платформе для запуска Descent была ОС DOS не ниже версии 5.0 и IBM PC-совместимый компьютер с процессором 486DX 50 МГц [1]. Опытным пользователям удавалось запустить игру на 386 PC-совместимой аппаратной платформе с 33 мегагерцовым процессором. Начиная с Пентиумов игра показывала стабильно высокий уровень производительности.



Исходники они опубликовали...

Manhunt ★★★★★
()
Ответ на: комментарий от buddhist

Огромное спасибо за ссылку, уже на него смотрю.

slapin ★★★★★
() автор топика
Ответ на: комментарий от Manhunt

Descent тоже прекрасен, спасибо!

slapin ★★★★★
() автор топика

Займись лучше вокселями)

Сайт в помощь

http://www.flipcode.com/

Ещё посмотри страницу Кена Сильвермана про voxlap

Zorn
()

http://pastebin.com/pRWLxUMA

Вот его пример на бейсике, который я переписал на C. Увы, как работает я пока не понимаю. Может тут специалисты объяснят;)

Там карта высот 64x64 (хотя рендеринг идет для любых координат в «бесшовном режиме»). Непосредственно как происходит рендеринг - хз

Zorn
()

Да, если хочешь готовое - crystalspace в помощь. Плюсы, правда, но объектная ориентированность как нельзя кстати в таких вещах

Zorn
()
Ответ на: комментарий от slapin

Смотрел. Понял, что не искал. Документации про BSP и mdl чуть больше, чем до фига. И на русском в том числе. doom и Quake были описаны сто раз. Можешь полистать gamedev.ru, раз уж гугл, почему-то тебя на него не вывел.

Shtucer
()
Ответ на: комментарий от Shtucer

Про это информация есть, согласен.

Нет информации про код самих движков, например о том, как поменять все под новый набор элементов, карт и прочих данных. Полно статей про алгоритмы и тп.

На самом деле даже про простой моддинг не так уж и много информации, проще найти про всякие Unreal и Ogre, чем про всякие кваки с думами. То есть просто стартовых док про то, как применить движок, без использования родных данных, то есть просто с нуля, нет.

slapin ★★★★★
() автор топика
Ответ на: комментарий от trex6

софтверный OpenGL не подойдет?

Ну, железо потянет разве что TinyGL, да и то gears на нем не слишком быстры. vfp нету.

slapin ★★★★★
() автор топика
Ответ на: комментарий от Zorn

о пример на бейсике, который я переписал на C
как работает я пока не понимаю

Это как? Чтобы переписать, нужно понимать хотя бы общую логику.

mopsene ★★★
()
Ответ на: комментарий от Zorn

Хотя бы знать для чего необходимы переменные в этом коде. Я его посмотрел, там даже комментарии есть. Вроде все понятно.

mopsene ★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.