|
#1
|
||||
|
||||
OpenGL текстуры
Решил занятся изучением библиотеки OpenGL, на данный момент исключительно для 2х мерного рисования, до этого рисовал Canvas'ом. Вопрос в следующем, какими средствами можно/нужно рисовать непосредственную текстуру из файла?
В большинстве статей используется присловутый юнит textures.pas, в состав которого входит не менее присловутая функция Loadtexture (загружает текстуру). Однако хотелось бы узнать как реализуется загрузка текстуры непосредственно средствами OpenGL. |
#2
|
||||
|
||||
Имхо, изучать любую область лучше всего из первоисточника. Для OpenGL - это т.н. "The Red Book" (OpenGL Programming Guide: М. Ву, Т. Девис, Дж.Нейдер, Д.Шрайнер) или его перевод "OpenGL руководство по программированию". Там на си, но примеров довольно много. И все описывается подробно.
jmp $ ; Happy End! The Cake Is A Lie. |
#3
|
||||
|
||||
Цитата:
Je venus de nulle part 55.026263 с.ш., 73.397636 в.д. |
#4
|
||||
|
||||
можно также делать всё вручную и без этого модуля, если уметь преобразовывать графический файл в графический поток правильного формата(R,G,B->B,G,R)
|
#5
|
||||
|
||||
Цитата:
Je venus de nulle part 55.026263 с.ш., 73.397636 в.д. |
#6
|
||||
|
||||
Собственно, кто бы помог разобратся в содержании юнита.
скачал его тут ну или как вариант предложить ему альтернативу angvelem, скажем могу ли я использовать текстуры непосредственно из Bitmap или же изначально использовать другой тип? |
#7
|
||||
|
||||
Только битмап и можно использовать, все остальные файлы приходится "перегонять" в него.
P.S. архив гляну позже. Этот файл (textures.pas) довольно часто встречается в различных проектах. Ничего сложного при его подключении нет. В dpr-файле весь код вызова показан. Je venus de nulle part 55.026263 с.ш., 73.397636 в.д. Последний раз редактировалось angvelem, 13.01.2013 в 21:57. |
#8
|
||||
|
||||
И вот незадача, две строки
Код:
glGenTextures(1, Tex1); glBindTexture(GL_TEXTURE_2D, Tex1); ругается на обе строки мол "Undeclared identifier". Код:
uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, OpenGL, unit1,JPEG; при всем библиотека OpenGL используется |
#9
|
||||
|
||||
Unsigned int - cardinal/longworg
— Как тебя понимать? — Понимать меня не обязательно. Обязательно меня любить и кормить вовремя. На Delphi, увы, больше не программирую. Рекомендуемая литература по программированию |
#10
|
||||
|
||||
Проблема с 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
|
|||
|
|||
Помоему проще использовать dglOpenGL.pas
Взять можно здесь www.delphigl.com (сайт на немецком) Он слегка отличается от дельфийского OpenGL.pas но думаю привыкнуть можно Плюсы: частые (относительно) обновления, присутствие всех новых функций. Минусы: непривычное исполнение (функции подключаются динамически) |
#12
|
||||
|
||||
Только допилить большим напильником, дабы избавиться от SysUtils, для тех кто не приемлет VCL.
Je venus de nulle part 55.026263 с.ш., 73.397636 в.д. |
#13
|
|||
|
|||
Тогда уж и от textures.pas избавиться придется, потомучто он использует не только SysUtils, но и Graphics.
|
#14
|
||||
|
||||
В моём варианте ничего лишнего не используется.
Je venus de nulle part 55.026263 с.ш., 73.397636 в.д. |