1 / 1 / 0
Регистрация: 27.02.2010
Сообщений: 190

OpenGL C++: чтобы свет падал на сферу, а не на линии

10.10.2012, 02:07. Показов 2165. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Как сделать чтобы свет падал к примеру на сферу, а на линии не падал. Ибо линии меняют цвет.
Может ли кто сказать где найти готовый проект с каким-либо простым рисунком в с++?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
10.10.2012, 02:07
Ответы с готовыми решениями:

qt opengl наложение текстуры на сферу полигонами
недавно понадобилось построить трехмерную модель земли. до этого писал на с++, но только консольные приложения. решил перейти с visual...

Свет в OpenGL
У меня отрисовывается шахматное поле черными и белыми квадратами (GL_QUADS). Также подгружаю модель из 3ds. Однако свет сделать не могу....

Opengl es: свет в сцене
Всем привет!! у меня на сцене есть источник света, но он светит не на всю сцену, а как сделать так чтобы, вся сцена была освещена ( вот...

6
14 / 9 / 0
Регистрация: 12.07.2012
Сообщений: 82
10.10.2012, 18:01
Просто перед отрисовкой линий пишешь:
C++
1
glDisable(GL_LIGHTING);
а после отрисовки пишешь:
C++
1
glEnable(GL_LIGHTING);
А для готовых проектов -
http://pmg.org.ru/nehe/
там можно перейти скачать разные проекты.
1
1 / 1 / 0
Регистрация: 27.02.2010
Сообщений: 190
11.10.2012, 10:53  [ТС]
Спасибо зап совет. Помогло.
На сайте я не нашел готовых робот с OpenGL в с++. Мне бы еще очень не помешало бы научиться текстуры налаживать в с++, но нигде внятного пояснения на эту тему я не нашел. Теперь вот ищу уже готовые работы, возможно там найду текстурирование.
0
angstrom
11.10.2012, 11:08
Все уроки "пришли" отсюда и существуют вариации для всевозможных языков. Выбираете подходящий урок, переходите в конец страницы и скачиваете версию для нужного языка.
1 / 1 / 0
Регистрация: 27.02.2010
Сообщений: 190
12.10.2012, 00:47  [ТС]
Скачал пример с текстурированием - очень много ненужного и лишнего кода, который очень сложно понять новичку. Мне бы найти простое наложение текстуры к примеру на прямоугольник...
0
angstrom
12.10.2012, 05:00
Для вас должен подойти 6-ой урок. Ничего сложного там нет. В этих уроках не используется библиотека GLUT, отсюда и кажущаяся сложность, так как всю инициализацию и уборку "мусора" приходится делать самостоятельно.
1 / 1 / 0
Регистрация: 27.02.2010
Сообщений: 190
14.10.2012, 22:01  [ТС]
Нашел другой пример, в разы легче. Все работает, но есть другая проблема.
Рисую сферы со светом в Opengl, поставил текстуру на фон. Проблема в том, что когда я ставлю темный фон на задний план, меняется и освещение сфер - они становятся более темными. Как это выключить?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
void CPicture::OnShowPicture() 
 {
 
 unsigned int textures[1];
 AUX_RGBImageRec *texture1=auxDIBImageLoadA("texturebmp1.bmp");
 glGenTextures(1, &textures[1]);
 glBindTexture(GL_TEXTURE_2D, textures[0]);
 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
 glTexImage2D(GL_TEXTURE_2D, 0, 3, texture1->sizeX, texture1->sizeY,0, GL_RGB, GL_UNSIGNED_BYTE, texture1->data); 
 glEnable(GL_TEXTURE_2D);
 glBegin(GL_QUADS);
 glTexCoord2f(0.0, 0.0); glVertex2f(-1.0, -1.0);
 glTexCoord2f(0.0, 1.0); glVertex2f(-1.0, 1.0);
 glTexCoord2f(1.0, 1.0); glVertex2f(1.0, 1.0);
 glTexCoord2f(1.0, 0.0); glVertex2f(1.0, -1.0);
 glEnd();
 
 glPushMatrix(); 
 
 GLUquadricObj *quadObj;
 quadObj = gluNewQuadric(); // создаем новый Quadric объект
 
 // glClearColor(0, 0.5, 0.99, 1);
 
 float pos[4] = {-0.9f,-1.9f,0.9f,1};
 float dif[4] = {1,1,1,1};
 float am[4] = {0,0,0,1};
 glEnable(GL_LIGHTING
 );
 glEnable(GL_LIGHT1);
 glLightModeli(GL_LIGHT_MODEL_TWO_SIDE, GL_TRUE);
 glEnable(GL_COLOR_MATERIAL);
 glLightfv(GL_LIGHT1, GL_POSITION, pos);
 glLightfv(GL_LIGHT1, GL_AMBIENT, am);
 glLightfv(GL_LIGHT1, GL_DIFFUSE, dif);
 gluQuadricDrawStyle(quadObj, GLU_FILL); // устанавливаем стиль: закрашенный
 
 //a = al*glcolor
 //d = dl*glcolor + a
 
 glColor3f(1,1,1);
 glTranslatef(-0.7, 0.2, 0); // Сдвиг
 gluSphere(quadObj, 0.15, 100, 10); // рисуем сферу
 
 glTranslatef(0, -0.3, 0); // Сдвиг
 gluSphere(quadObj, 0.22, 100, 10); // рисуем сферу
 
 glTranslatef(0, -0.4, 0); // Сдвиг
 gluSphere(quadObj, 0.3, 100, 10); // рисуем сферу
 
 
 
 glPopMatrix();
 
 glFinish(); //закончили с OpenGL
 SwapBuffers(wglGetCurrentDC()); //вывод рисунка в контекст
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
14.10.2012, 22:01
Помогаю со студенческими работами здесь

Сделать, чтобы снаряд вылетал из дула прямо, но со временем падал
есть танк) у него меняется угол наклона ствола как сделать,чтобы снаряд вылетал из дула прямо,со временем падая?чтобы было похоже на...

OpenGL, свет зависит от фона
Здравствуйте. Рисую сферы со светом в Opengl, поставил текстуру на фон. Проблема в том, что когда я ставлю темный фон на задний план,...

Свет в OpenGL. Не выводится изображение на экран.
Пользуюсь модулем dglopengl.pas. Пытаюсь создать имитацию света, рисуя изображение, прикреплённое к теме. Не знаю почему, но оно не...

Свет без спот лайтов OpenGL
http://img31.imageshack.us/img31/6276/dransik012.png http://img31.imageshack.us/img31/6276/dransik012.png есть ли возможность...

Rigidbody2D импульс AddForce() Как сделать, чтобы после импульса объект не падал назад?
Здравствуйте! Даю импульс объекту: rBD.AddForce (new Vector2 (_impulseForce, 0), ForceMode2D.Impulse); Но, когда импульс...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

Новые блоги и статьи
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2. Задача: отобразить спецтехнику, которая на данный момент находится в ремонте. Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
Запрет удаления строк ТЧ документа при определенном условии
Maks 19.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "Аккумуляторы", разработанного в конфигурации КА2. У данного документа есть ТЧ, в которой в зависимости от прав доступа. . .
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru