О данном блоге

Данный блог создан для регистрирования процесса разработки визуализатора для ситемы МИКРОБ (подробнее читать в первом посте). В разработке участвуют l1feh4ck3r, его научный руководитель evil (Ю.С. Борисов), а так же другие жители лаборатории 12 (лаборатория машинной графики) ДВО РАН. Здесь предполагается размещать идеи и различные события, связанные с разработкой визуализатора (далее просто микроба). Разрабатывается это все на могучем языке программирования C/C++ с использованием графического API OpenGL. Возможно использование сторонних библиотек. Лицензия - BSD или GPL.
Единственное правило блога: идеи - в постах, обсуждение - в каментах.

пятница, 10 апреля 2009 г.

О ядре

В качестве основы для ядра хочу использовать вот это (один двиг - описание в 4х частях): один, два, три, четыре. Точнее начиная со второй половины второй статьи (The Kernel).
То есть основная идея - это использовать ядро (kernel) в качестве организатора цикла обработки всего и вся, а все и вся организовать в виде задач для ядра (tasks). В качестве задач может выступать все, что угодно: таймер, рендер, триггер, физика и тд.
Если кратко об устройстве, то внутри kernel содержится список задач, а у каждой задачи есть 3 метода: start, stop и update. При добавлении задачи, выполняется метод start, при ее удалении из списка - stop. У kernel есть метод execute, внутри которого крутиться цикл, в котором поочередно выполняется метод update у всех задач. Чем меньше приоритет, тем раньше будет вызван метод update у этой задачи в текущей итерации цикла.
На текущий момент все просто - за одну итерацию цикла у каждой задачи выполняется метод update один раз. Мне хочется большего: чтобы была возможность за одну итерацию, для некоторых задач выполнять метод update несколько раз. Объясню для чего это нужно: например, у нас есть задача "физика" (соответственно для обсчёта физики), она должна делать update несколько раз на один раз рендера (например, 10 аптдейтов физики на 1 апдейт рендера). Есть идеи, как это сделать? Прошу помочь ссылками на соответствующую литературу.

Комментариев нет: