2010-11-05 2 views
1

Для проекта я хочу реализовать свой собственный Z-буфер. Я знаю алгоритм и как это реализовать. Поскольку я не хочу писать весь графический движок, я планировал использовать OpenGL, проблема в том, как я могу объединить свой собственный алгоритм с openGL?Реализация Z-буфера с использованием OpenGL

Я где-то читал, что сам могу рассчитать все, а затем передать данные на пиксель в GLDrawPixels(), но это кажется немного переборщиком. Дело в том, что я не хочу реализовывать алгоритмы триангуляции и т. Д.

Моя цель - использовать openGL до каркаса, затем использовать собственный алгоритм z-буфера, а затем снова использовать openGL, чтобы нарисовать окончательное изображение. (для моего проекта, z-buffer - это единственное, что имеет значение, включая свет и тени). Есть ли способ, которым это можно сделать, или я должен сам все реализовать и позволить openGL просто нарисовать endresult?

С уважением

ответ

2

Вы можете установить цвет вершины вы рисуете их Z-значений, вычисляя их расстояние «вручную». Но я думаю, что можно связать z-буфер как текстуру, а затем нарисовать большое квадратное покрытие с экраном с текстурой z-буфера на нем.

+0

Я подумаю об этом. В конце концов, я должен реализовать другой метод, основанный на z-буферизации, но не полностью тот же (мне нужно создать нерегулярный z-буфер). Давайте посмотрим, что возможно с вашим предложением. – KWyckmans

+0

Вы правы, openGL, похоже, не подходит для этого. – KWyckmans