Lumer
Ноя. 15, 2008 05:02:23
Я что то не на шел такого коталога NeHe.
Ferroman
Ноя. 17, 2008 15:03:33
Первый линк гугла по запросу “NeHe”
Lumer
Ноя. 18, 2008 11:30:00
В общем я как мне и посоветовали раздобыл книгу по OpenGL и в первом же уроке по написанию приложения которое должно формировать на экране монитора узор Серпинского
Вот код
from OpenGL.GL import *
from OpenGL.GLU import *
from OpenGL.GLUT import*
def main():
glutInit();
glutInitDisplayMode (GLUT_SINGLE | GLUT_RGB);
glutInitWindowSize(500, 500);
glutInitWinndowPosition(0, 0);
glutDisplayFunc(display);
myinit();
glutMainLoop();
sleep();
def myinit():
glClearColor (1.0, 1.0, 1.0, 0.0);
glColor3f (1.0, 0.0, 0.0);
glMatrixMode(GL_PROJECTION);
gluLoadIdentity();
gluOrtho2D (0.0, 500.0, 0.0, 500.0);
glMatrixMode(GL_MODELVIEW);
def display():
typedef GLfloat point2;
point2 vertises = {{0.0,0.0},{250.0,500.0},{500.0,0.0}};
int i, j, k;
int rand();
point2 p = {75.0, 50.0};
glClear(GL_COLOR_BUFFER_BIT);
for (k=0; k<5000; k++)
j = rand()%3;
p = (p+vertices)/2.0;
p = (p+verticea)/2.0;
glBegin(GL_POINTS);
glVertex2fv(p);
glEnd();
glFlush();
Но на экране ничего не происходит подскажите в чем дело где ошибка?
Striver
Ноя. 18, 2008 14:31:52
Э-э-э-э …
Это на питоне программа или на С?
igor.kaist
Ноя. 18, 2008 14:37:33
Это на питоне… Но не нужно быть знатаком opengl чтоб понять почему не работает.. Скорее всего код недокопипастен :)
3 функции, но они не вызываются.. как это может работать?!
Lumer
Дек. 3, 2008 14:24:31
Все чтото я вобще запутолся! подскажите как открыть пустое окно OpenGL а то я что то не разберу ни как в книге написано очень просто а у меня что то не получаеться! дайте кто ни буть простой пример!
Ferroman
Дек. 3, 2008 15:04:37
LumerМожет стоит отложить эту книгу, скачать примеры с
http://pyopengl.sourceforge.net/ и попробовать в них разобраться? Они там вполне хорошие.
Пример есть тут -
http://purepython.narod.ru/openglstart.htmlЯ проверил, он рабочий.
Lumer
Дек. 4, 2008 19:27:13
Блин одни советуют читать книги другие нет какбы в книге все подробно и просто изложено но у меня не получаеться простого открыть пустое окно Windows в уроках NEHE вовще там все на язык С++ и много мне не нужного для начала вот строки из книги как бы тут всё предельно ясно но отчего же окно не открываеться?
Перед тем как окно приложения будет открыто на экране, должен состояться сеанс связи
между подсистемой окон и OpenGL. В составе библиотеки GLUT эта операция возлагается на
функцию glutlnit():
void glutlnit(int *argcp, char **argv);
Функция имеет два аргумента, через которые можно передать аргументы командной стро-
ки, как в стандартной С-функции main(). После выполнения glutlnit() можно открыть окно
OpenGL-программы, вызвав функцию glutCreateWindow():
int glutCreateWindow(char *title);
Аргумент title этой функции — надпись, которая будет выведена в строке заголовка окна.
При создании окна устанавливаются его параметры, назначенные графической системой
по умолчанию, — размер, положение на экране и режим RGB управления цветом. Для на-
стройки иных значений параметров нужно перед вызовом glutCreateWindow() обратиться к
соответствующим функциям их установки. Например, в следующем фрагменте программы
устанавливается размер окна 480x640 пикселей, а само окно размещается в левом верхнем
углу экрана".
glutInitDisplayMode(GLUT_RGB | GLUT_DEPTH | GLUT_DOUBLE);
glutInitWindowSizeD80, 640);
glutlnitWindowPosition@,0);
Обратите внимание на то, что константы задания отдельных режимов объединяются в ар-
гументе функции glutInitDisplayMode() операцией побитового ИЛИ. Константа GLUT_RGB
задает RGB-режим. Если предполагается использовать режим индексированных цветов, то
вместо константы GLUT_RGB следует передать GLUT_INDEX. Вторая константа GLUT_DEPTH зада-
ет использование буфера глубины при выполнении удаления невидимых поверхностей. Тре-
тья константа GLUT_DOUBLE задает двойную буферизацию (одиночная буферизация задается
константой GLUT_SINGLE).
Режим, заданный по умолчанию, который вполне достаточен для той задачи, которую мы
будем решать в этой главе, — цвет RGB, отсутствие удаления невидимых поверхностей и
одиночная буферизация. Эти настройки можно и не устанавливать в явном виде, но включе-
ние их в программу делает ее текст более понятным для тех, кто только осваивает методику
программирования на OpenGL.
Ferroman
Дек. 4, 2008 20:45:47
1. Знаки препинания.
2. Чем не подошёл мой пример?
3. Конкретнее вопрос. Как пишите, чего ждёте, что получаете?
Lumer
Дек. 5, 2008 13:04:20
вобщем задам вопрос так Хватит ли одной функции чтобы открыть пустое окно?
получаеться так по книге что достаточно одной функции
def glutInit():
glutInitDisplayMode(GLUT_RGB | GLUT_DEPTH | GLUT_DOUBLE);
glutInitWindowSize(800, 640);
glutlnitWindowPosition(0,0);
glutCreateWindow():
вот так оно примерно выглядит но не кокого окна не открываеться в чем дело?
А пример этот я уже видел и вроде все понятно но когда пытаюсь открыть просто окно нечего не получаеться.