Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 12.01.2013, 12:24
Аватар для Arshehremen
Arshehremen Arshehremen вне форума
Прохожий
 
Регистрация: 12.01.2013
Адрес: Нет адреса
Сообщения: 4
Версия Delphi: XE3
Репутация: 10
По умолчанию OpenGL текстуры

Решил занятся изучением библиотеки OpenGL, на данный момент исключительно для 2х мерного рисования, до этого рисовал Canvas'ом. Вопрос в следующем, какими средствами можно/нужно рисовать непосредственную текстуру из файла?
В большинстве статей используется присловутый юнит textures.pas, в состав которого входит не менее присловутая функция Loadtexture (загружает текстуру). Однако хотелось бы узнать как реализуется загрузка текстуры непосредственно средствами OpenGL.
Ответить с цитированием
  #2  
Старый 12.01.2013, 12:28
Аватар для Bargest
Bargest Bargest вне форума
Профессионал
 
Регистрация: 19.10.2010
Адрес: Москва
Сообщения: 2,390
Версия Delphi: XE3/VS12/FASM
Репутация: 14665
По умолчанию

Имхо, изучать любую область лучше всего из первоисточника. Для OpenGL - это т.н. "The Red Book" (OpenGL Programming Guide: М. Ву, Т. Девис, Дж.Нейдер, Д.Шрайнер) или его перевод "OpenGL руководство по программированию". Там на си, но примеров довольно много. И все описывается подробно.
__________________
jmp $ ; Happy End!
The Cake Is A Lie.
Ответить с цитированием
  #3  
Старый 12.01.2013, 12:36
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

Цитата:
Сообщение от Arshehremen
.... Однако хотелось бы узнать как реализуется загрузка текстуры непосредственно средствами OpenGL.
OpenGL работает только с "подготовленныим" текстурами, для этого и используется textures.pas и подобные.
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.
Ответить с цитированием
  #4  
Старый 12.01.2013, 18:23
Аватар для D_E_N_
D_E_N_ D_E_N_ вне форума
Прохожий
 
Регистрация: 27.06.2012
Сообщения: 15
Репутация: 10
По умолчанию

можно также делать всё вручную и без этого модуля, если уметь преобразовывать графический файл в графический поток правильного формата(R,G,B->B,G,R)
Ответить с цитированием
  #5  
Старый 12.01.2013, 21:37
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

Цитата:
Сообщение от D_E_N_
... в графический поток правильного формата(R,G,B->B,G,R)
Вот это как раз и необязательно, OpenGL поддерживает оба этих формата.
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.
Ответить с цитированием
  #6  
Старый 13.01.2013, 11:45
Аватар для Arshehremen
Arshehremen Arshehremen вне форума
Прохожий
 
Регистрация: 12.01.2013
Адрес: Нет адреса
Сообщения: 4
Версия Delphi: XE3
Репутация: 10
По умолчанию

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

angvelem, скажем могу ли я использовать текстуры непосредственно из Bitmap или же изначально использовать другой тип?
Ответить с цитированием
  #7  
Старый 13.01.2013, 21:21
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

Только битмап и можно использовать, все остальные файлы приходится "перегонять" в него.

P.S. архив гляну позже.

Этот файл (textures.pas) довольно часто встречается в различных проектах. Ничего сложного при его подключении нет. В dpr-файле весь код вызова показан.
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.

Последний раз редактировалось angvelem, 13.01.2013 в 21:57.
Ответить с цитированием
  #8  
Старый 06.02.2013, 22:37
Аватар для Arshehremen
Arshehremen Arshehremen вне форума
Прохожий
 
Регистрация: 12.01.2013
Адрес: Нет адреса
Сообщения: 4
Версия Delphi: XE3
Репутация: 10
По умолчанию

И вот незадача, две строки
Код:
  glGenTextures(1, Tex1);
  glBindTexture(GL_TEXTURE_2D, Tex1);
где Tex1:GLuint;
ругается на обе строки мол "Undeclared identifier".

Код:
uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, OpenGL, unit1,JPEG;

при всем библиотека OpenGL используется
Ответить с цитированием
  #9  
Старый 06.02.2013, 22:44
Аватар для M.A.D.M.A.N.
M.A.D.M.A.N. M.A.D.M.A.N. вне форума
Sir Richard Abramson
 
Регистрация: 05.04.2008
Сообщения: 5,505
Версия Delphi: XE10
Репутация: выкл
По умолчанию

Unsigned int - cardinal/longworg
__________________
— Как тебя понимать?
— Понимать меня не обязательно. Обязательно меня любить и кормить вовремя.


На Delphi, увы, больше не программирую.
Рекомендуемая литература по программированию
Ответить с цитированием
  #10  
Старый 07.02.2013, 03:01
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

Проблема с OpenGL.pas. В интерфейсной части юнита пропиши эти строчки.
Код:
// эти процедуры не описаны в 'opengl.pas', описываем сами
procedure glGenTextures(n : GLsizei; textures : GLuint); stdcall; external opengl32;
procedure glDeleteTextures(n : GLsizei; const textures : GLuint); stdcall; external opengl32;
procedure glBindTexture(target : GLenum; Texture : GLuint); stdcall; external opengl32;
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.
Ответить с цитированием
  #11  
Старый 15.06.2013, 00:49
Dartlen Dartlen вне форума
Прохожий
 
Регистрация: 29.11.2008
Сообщения: 3
Репутация: 10
По умолчанию

Помоему проще использовать dglOpenGL.pas
Взять можно здесь www.delphigl.com (сайт на немецком)
Он слегка отличается от дельфийского OpenGL.pas но думаю привыкнуть можно
Плюсы: частые (относительно) обновления, присутствие всех новых функций.
Минусы: непривычное исполнение (функции подключаются динамически)
Ответить с цитированием
  #12  
Старый 15.06.2013, 15:22
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

Только допилить большим напильником, дабы избавиться от SysUtils, для тех кто не приемлет VCL.
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.
Ответить с цитированием
  #13  
Старый 28.06.2013, 11:18
Dartlen Dartlen вне форума
Прохожий
 
Регистрация: 29.11.2008
Сообщения: 3
Репутация: 10
По умолчанию

Тогда уж и от textures.pas избавиться придется, потомучто он использует не только SysUtils, но и Graphics.
Ответить с цитированием
  #14  
Старый 28.06.2013, 21:36
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

В моём варианте ничего лишнего не используется.
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 00:43.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter