Модераторы: Rickert, Alexeis, BorisVorontsov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Вывод примитивов, Точка 
:(
    Опции темы
student0511
Дата 20.4.2007, 00:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 42
Регистрация: 26.3.2006

Репутация: нет
Всего: нет



Решил немного изучить OpenGL, с самых основ. До этого не сталкивался с графическими приложениями, вообщем, не работал даже с примитивами. Вот стало интересно. Возникла сразу же проблема: после инициализации OpenGL (использовал учебник "Графическая библиотека OpenGL", Юрий Баяковский, Игнатенко Алексей, Фролов Антон) решил начать с самого простого и нарисовать точку. Вроде всё сделал верно, но результат - обыкновенное окно, заполненное чёрным. 
Вот текст программки:
Код

#include <stdlib.h>
#include <gl/glut.h>

//íначал размер окна
GLint Width = 512, Height = 512;
// вывод точки на экран
void Display(void)
{

    glClearColor(0, 0, 0, 1);
    glClear(GL_COLOR_BUFFER_BIT);
    
    
    glBegin(GL_POINTS);
      glColor3f(1.0,0.0, 0.0);//red
      glVertex2f(0.0, 0.0);
    glEnd();

    glFinish();
}

// функция изм. окна
void Reshape(GLint w, GLint h)
{
    Width = w;
    Height = h;

    //oбл. отображения
    glViewport(0, 0, w, h);

    //ортографическая проекция
    glMatrixMode(GL_PROJECTION);
    glLoadIdentity();
    glOrtho(0, w, 0, h, -1.0, 1.0);

    glMatrixMode(GL_MODELVIEW);
    glLoadIdentity();
}

main(int argc, char *argv[])
{
    glutInit(&argc, argv);
    glutInitDisplayMode(GLUT_RGB);
    glutInitWindowSize(Width, Height);
    glutCreateWindow("Red square example");

    glutDisplayFunc(Display);
    glutReshapeFunc(Reshape);
    glutKeyboardFunc(Keyboard);

    glutMainLoop();
}

И что значат магические слова  smile : "...ортографическая проекция" ? (комменты взяты с учебника).

Это сообщение отредактировал(а) student0511 - 20.4.2007, 01:08
PM MAIL   Вверх
Rickert
Дата 20.4.2007, 05:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ситхи не пройдут!
****


Профиль
Группа: Комодератор
Сообщений: 3356
Регистрация: 11.7.2006
Где: Лакрима

Репутация: 2
Всего: 52



Код

void Display(void)
{
    glClearColor(0, 0, 0, 1);
    glClear(GL_COLOR_BUFFER_BIT);
    glLookAt(4, 12, 4, 0, 0, 0, 0, 1, 0);
    
    glColor3f(1.0, 0.0,  0.0);//red
    glBegin(GL_POINTS);
      glVertex3f(0.0, 0.0);
    glEnd();
}

А так?


--------------------
Ни что не внушает сна крепче, чем день приисполненный трудов!
PM MAIL WWW Skype GTalk   Вверх
student0511
Дата 20.4.2007, 07:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 42
Регистрация: 26.3.2006

Репутация: нет
Всего: нет



To Ricket
Неа, выдаёт ошибку: "error C2065: 'glLookAt' : undeclared identifier". Заменил на gluLookAt - ошибка исчезла, но ничего в результате не изменилось. 

Это сообщение отредактировал(а) student0511 - 20.4.2007, 07:55
PM MAIL   Вверх
Rickert
Дата 20.4.2007, 08:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ситхи не пройдут!
****


Профиль
Группа: Комодератор
Сообщений: 3356
Регистрация: 11.7.2006
Где: Лакрима

Репутация: 2
Всего: 52



Ну да, это я неправильно имя написал. Без компилера для винды под рукой.
Я домой приду - проверю твой код. А вообще, почему ты всё через glut делаешь?
Иди в яндекс и пиши "Уроки NeHe". Первым же уроком всё поймёшь и разберёшься.


--------------------
Ни что не внушает сна крепче, чем день приисполненный трудов!
PM MAIL WWW Skype GTalk   Вверх
sgi1981
Дата 21.4.2007, 01:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 284
Регистрация: 16.3.2006

Репутация: нет
Всего: 10



Чуть подправил код. Не тестировал.
Код

#include <stdlib.h>
#include <gl/glut.h>
//íначал размер окна
GLint Width = 512, Height = 512;
// вывод точки на экран
void Display(void)
{
    glClearColor(0, 0, 0, 1);
    glClear(GL_COLOR_BUFFER_BIT);
    
    
    glBegin(GL_POINTS);
      glColor3f(1.0,0.0, 0.0);//red
      glVertex2f(0.0, 0.0);
    glEnd();
    glFinish();
}
// функция изм. окна
void Reshape(GLint w, GLint h)
{
    Width = w;
    Height = h;
    //oбл. отображения
    glViewport(0, 0, w, h);
    //ортографическая проекция
    glMatrixMode(GL_PROJECTION);
    glLoadIdentity();
    glOrtho(-w, w, -h, h, 1.0, -1.0);
    glMatrixMode(GL_MODELVIEW);
    glLoadIdentity();
}
main(int argc, char *argv[])
{
    glutInit(&argc, argv);
    glutInitDisplayMode(GLUT_RGB);
    glutInitWindowSize(Width, Height);
    glutCreateWindow("Red square example");
    glutDisplayFunc(Display);
    glutReshapeFunc(Reshape);
    glutKeyboardFunc(Keyboard);
    glutMainLoop();
}



--------------------
Тело в нашем пространстве - есть часть пространства, в которой пространство обладает дисторсией относительно внешнего пространства.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Вы можете найти полезным что...
Alexeis
Rickert
  • Английская документация по DirectX лежит где-то здесь.
  • Английская документация по OpenGL лежит где-то там.
  • Гейм-дев у нас обсуждают где-то тут

Ждём вас! С уважением, Alexeis, Rickert.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Мультимедия, OpenGL/DirectX | Следующая тема »


 




[ Время генерации скрипта: 0.0714 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.