Как отрисовывать сцены в двух разных контролах ?
В одном SimpleOpenGlControl рисуется непосредственно 3d сцена, необходимо ещё один SimpleOpenGlControl для отрисовки в нём графика изменения некоторой величины . затруднительно рисовать график в том же окне . Сейчас получается ,что окно в котором будет отрисовываться сцена определяется последним вводом команды InitializeContexts
/*http://esate.ru, pashtetus1*/
SimpleOpenGlControl GLCGraph,Vid;
GLCGraph.InitializeContexts();
Vid.InitializeContexts();
|
так отрисовка будет в окне Vid
/*http://esate.ru, pashtetus1*/
Vid.InitializeContexts();
GLCGraph.InitializeContexts();
|
так в GLCGraph
/*http://esate.ru, pashtetus1*/
Vid.InitializeContexts();
GLCGraph.InitializeContexts();
Vid.InitializeContexts();
|
так тоже сцена рисуется в Vid
причём одновременно в двух окнах хотябы одинаковое изображение рисоваться не хочет. Как сделать так чтобы вторая сцена рисовалась одновременно с первой ,только в другом SimpleOpenGlControl'е??
Понравилась публикация? Сохраните ее, чтобы вернуться к изучению материала!
Скажи пожалуйста это принципиально, чтобы отрисовка проходила в двух разных контролах? Можно разделить сцену на две области просмотра (или на большее количество частей), примерно как .
Можно ли на контрол отображать 3д изображение одновременно с 2д ??Можно!
Объекты на сцене (в идеале) нужно размещать по глубине, т.е. то что глубже «внутри» сцены рисуем сначала, потом то, что ближе к зрителю. Таким образом, если ты хочешь изобразить 2Д объект как самый близкий к зрителю ты рисуешь его последним, а для этого можешь установить 2Д проекцию glOrtho( left, right, bottom, top, 0, 1 );
Если изобразить 2Д вначале, а потом рисовать 3Д объекты, то возможна ситуация, когда ты просто ни чего не увидишь или (что еще хуже) не сможешь проследить какой объект к чему относится.
Пример когда нужно отображать 2Д поверх 3Д это прицел в играх типа шутер.