Форум программистов, компьютерный форум, киберфорум
Delphi: Графика, звук, видео
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/9: Рейтинг темы: голосов - 9, средняя оценка - 4.67
 Аватар для Matan!
1882 / 1016 / 228
Регистрация: 31.05.2013
Сообщений: 6,645
Записей в блоге: 6

Координатная сетка, как текстура

12.10.2016, 15:06. Показов 1798. Ответов 6

Студворк — интернет-сервис помощи студентам
Доброго времени суток!
Как наложить сетку на куб?
Вот какие-то начатки
Delphi
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
58
59
60
61
62
unit Unit2;
 
interface
 
uses
  OpenGL;
 
 procedure Texture;
 
implementation
 
Procedure Texture;
begin
glTexParameter (GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
glTexParameter (GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
 
glBegin(GL_QUADS);
    glNormal3f( 0.0, 0.0, 1.0);
    glTexCoord2f(0.0, 0.0); glVertex3f(-1.0, -1.0,  1.0);
    glTexCoord2f(1.0, 0.0); glVertex3f( 1.0, -1.0,  1.0);
    glTexCoord2f(1.0, 1.0); glVertex3f( 1.0,  1.0,  1.0);
    glTexCoord2f(0.0, 1.0); glVertex3f(-1.0,  1.0,  1.0);
   glEnd;
   glBegin(GL_QUADS);
    glNormal3f( 0.0, 0.0,-1.0);
    glTexCoord2f(1.0, 0.0); glVertex3f(-1.0, -1.0, -1.0);
    glTexCoord2f(1.0, 1.0); glVertex3f(-1.0,  1.0, -1.0);
    glTexCoord2f(0.0, 1.0); glVertex3f( 1.0,  1.0, -1.0);
    glTexCoord2f(0.0, 0.0); glVertex3f( 1.0, -1.0, -1.0);
   glEnd;
   glBegin(GL_QUADS);
    glNormal3f( 0.0, 1.0, 0.0);
    glTexCoord2f(0.0, 1.0); glVertex3f(-1.0,  1.0, -1.0);
    glTexCoord2f(0.0, 0.0); glVertex3f(-1.0,  1.0,  1.0);
    glTexCoord2f(1.0, 0.0); glVertex3f( 1.0,  1.0,  1.0);
    glTexCoord2f(1.0, 1.0); glVertex3f( 1.0,  1.0, -1.0);
   glEnd;
   glBegin(GL_QUADS);
    glNormal3f( 0.0,-1.0, 0.0);
    glTexCoord2f(1.0, 1.0); glVertex3f(-1.0, -1.0, -1.0);
    glTexCoord2f(0.0, 1.0); glVertex3f( 1.0, -1.0, -1.0);
    glTexCoord2f(0.0, 0.0); glVertex3f( 1.0, -1.0,  1.0);
    glTexCoord2f(1.0, 0.0); glVertex3f(-1.0, -1.0,  1.0);
   glEnd;
   glBegin(GL_QUADS);
    glNormal3f( 1.0, 0.0, 0.0);
    glTexCoord2f(1.0, 0.0); glVertex3f( 1.0, -1.0, -1.0);
    glTexCoord2f(1.0, 1.0); glVertex3f( 1.0,  1.0, -1.0);
    glTexCoord2f(0.0, 1.0); glVertex3f( 1.0,  1.0,  1.0);
    glTexCoord2f(0.0, 0.0); glVertex3f( 1.0, -1.0,  1.0);
   glEnd;
   glBegin(GL_QUADS);
    glNormal3f(-1.0, 0.0, 0.0);
    glTexCoord2f(0.0, 0.0); glVertex3f(-1.0, -1.0, -1.0);
    glTexCoord2f(1.0, 0.0); glVertex3f(-1.0, -1.0,  1.0);
    glTexCoord2f(1.0, 1.0); glVertex3f(-1.0,  1.0,  1.0);
    glTexCoord2f(0.0, 1.0); glVertex3f(-1.0,  1.0, -1.0);
  glEnd;
 
end;
 
end.
Мож, я что-то не то делаю.

P.S. В итоге это должна быть 3D-система координат.
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
12.10.2016, 15:06
Ответы с готовыми решениями:

Координатная сетка
Помогите пожалуйста,чтобы координатные оси(которые красные),засечки и оцифровка рисовались под разным углом,ничего не получается,всё...

Координатная сетка
Необходимо создать программу которая рисует координатную сетку

Не работает текстура в 3d объекте, объект рисуется, я текстура на нем нет.
Здравствуйте, есть 3d кубик, и я его заполняю текстурой, но в зависимости от текстуры заполняются лишь его контуры, а сам он прозрачный,...

6
 Аватар для Matan!
1882 / 1016 / 228
Регистрация: 31.05.2013
Сообщений: 6,645
Записей в блоге: 6
17.10.2016, 08:39  [ТС]
Народ, помогите, пожалуйста.

Хотя бы как определяются текстурные координаты. По какой формуле происходит расчёт?
0
 Аватар для snake32
3510 / 1693 / 236
Регистрация: 26.02.2009
Сообщений: 8,451
Записей в блоге: 6
17.10.2016, 16:54
Лучший ответ Сообщение было отмечено Matan! как решение

Решение

А где код загрузки текстуры?
Используй вместо стандартного модуля OpenGL модуль от немцев dglOpenGL

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
// texID:GLuint;
glGenTextures( 1, @texID );
glBindTexture( GL_TEXTURE_2D, texID );
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE);
//bmp:TBitmap; с картинкой
case bmp.PixelFormat of
  pf32bit:glTexImage2D(GL_TEXTURE_2D, 0, 4, bmp.width, bmp.height, 0, GL_BGRA, GL_UNSIGNED_BYTE, bmp.ScanLine[bmp.height-1]);
  pf24bit:glTexImage2D(GL_TEXTURE_2D, 0, 3, bmp.width, bmp.height, 0, GL_BGR, GL_UNSIGNED_BYTE, bmp.ScanLine[bmp.height-1])
  else raise Exception.Create('Такой формат я не знаю');
end;
1
 Аватар для Matan!
1882 / 1016 / 228
Регистрация: 31.05.2013
Сообщений: 6,645
Записей в блоге: 6
18.10.2016, 10:26  [ТС]
snake32, ScanLine - что это будет для окна?
Я просто рисую на форме..
Вернее, в сцене.
0
 Аватар для snake32
3510 / 1693 / 236
Регистрация: 26.02.2009
Сообщений: 8,451
Записей в блоге: 6
18.10.2016, 11:56
Цитата Сообщение от Matan! Посмотреть сообщение
ScanLine - что это будет для окна?
Эмм...
bmp:TBitmap - это класс упрощающий работу с картинкой. Метод класса bmp.Scanline возвращает указать на строку пикселей этой картинки. В данном случае на последнюю строку, так как bmp.height это кол-во строк картинки, а bmp.height-1 это индекс последней строки, самой нижней. Нумерация начинается с ноля. Особенность bmp в том что в памяти последняя строка - это начало всего блока пикселей. То есть строки в памяти идут друг за другом начиная с последней.
А теперь вопрос, причём здесь окно?
1
 Аватар для Matan!
1882 / 1016 / 228
Регистрация: 31.05.2013
Сообщений: 6,645
Записей в блоге: 6
18.10.2016, 15:53  [ТС]
Цитата Сообщение от snake32 Посмотреть сообщение
А теперь вопрос, причём здесь окно?
Приведённый выше куб я рисую в окне с помощью командных скобок glPushMatrix..glPopMatrix.
Поэтому ни канву, ни контексты устройств я не использую.
Вот это:
Цитата Сообщение от snake32 Посмотреть сообщение
glGenTextures( 1, @texID );
glBindTexture( GL_TEXTURE_2D, texID );
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE);
круто и работает, но то, что ниже нужно заточить под OpenGl.
Сорри, если непонятно выразился...
0
 Аватар для snake32
3510 / 1693 / 236
Регистрация: 26.02.2009
Сообщений: 8,451
Записей в блоге: 6
18.10.2016, 20:30
Поэтому ни канву, ни контексты устройств я не использую.
Дык, в данном случае я использую bmp чтобы удобнее было загрузить картинку с файла в open gl. Далее bmp можно удалить - текстура уже загружена в видеокарту.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
18.10.2016, 20:30
Помогаю со студенческими работами здесь

Координатная сетка, как в Microsoft Visual Studio
Добрый день, уважаемые форумчане. Подскажите пожалуйста, как можно реализовать такую сетку, как в MVS, в какую сторону копать? ...

Координатная сетка
Народ подскажите пожалуйста какие есть подходы к созданию координатной сетки. Хочется чтобы как в фермах выбираешь объект для размещения на...

Координатная сетка
"Построить оцифрованную координатную сетку на форме. И при щелчке мыши в любой точке этой сетки в Label выводить ее координаты". Так...

Координатная сетка
Подскажите, пожалуйста, Как мне исправить ошибку. У меня есть цикл в коде, который заполняет ячейки подсказками. Есть на листе вертикальная...

Координатная сетка
Доброго всем времени суток Помогите разобраться: 1. Не состыковка линий с точками, где то читал, что вроде бы нужно прибавлять по оси X...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru