Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.03.27;
Скачать: CL | DM;

Вниз

Прозрачная текстура   Найти похожие ветки 

 
APTEMKA ©   (2002-10-18 03:19) [0]

Народ мне нужно чтоб рисунок на текстуре был полупрозрачен,
а пустые места прозрачными используя OpenGL.
ка сделать всю текстуру полу прозрачной я знаю
( color(1,1,1,0.5)
enable(blend)
)
А вот местами полностью прозрачной незнаю.
Спасибо


 
APTEMKA ©   (2002-10-18 03:56) [1]

Что такое не везет и как с етим бороться


 
cyborg ©   (2002-10-18 09:30) [2]

Точно незнаю, не делал, но понял так, правда не OpenGL, а в DirectX цвет на текстуре указывать в формате ARGB, каждый пиксел будет прозрачностью A. Если я правильно понял.


 
APTEMKA ©   (2002-10-18 16:53) [3]

cyborg
И как это написать на OpenGl
Там вообще такое возможно


 
APTEMKA ©   (2002-10-19 16:04) [4]

Неужели ни кто не знает
дайте хотя бы ссылку.


 
Gandalf   (2002-10-19 18:48) [5]

>Там вообще такое возможно?
Возможно

>Неужели ни кто не знает
Обижаешь, просто иногда просто лень отвечать... у меня например сейчас мыша глючит, обидно :(
Тестуры делать и использовать умеешь?
Тебе только при загрузке тектуры надо сделать так:

FBitmap := glCreateTexture(FWidth, FHeight, GL_RGBA, TempData);
^^^^^^^
Ну вот, TempData - массив RGBA (может в другом порядку точно не помню). FWidth,FHeight - СТЕПЕНЬ 2!
Потом ...BindTexture.. и т.д.


 
APTEMKA ©   (2002-10-21 02:25) [6]

Что то не получается
Может кто подробней объяснит
Уже всё перепробывал, все форумы перерыл.
Пожалуйста не сочтите за труд.
Заранее благодарен.


 
Gandalf   (2002-10-21 10:40) [7]

>Что то не получается
>Может кто подробней объяснит
>Уже всё перепробывал, все форумы перерыл.
>Пожалуйста не сочтите за труд.
> Заранее благодарен.

Пиши на мыло - поделюсь кодом.


 
Gandalf   (2002-10-22 13:39) [8]

Прости , я же забыл что glLoadTexture энто моя функция... вот ее код:

function glCreateTexture(Width, Height, Format: Integer; pData: Pointer; Filter: Boolean = True): Integer;
var
Texture: GLUInt;
begin
glGenTextures(1, Texture);
glBindTexture(GL_TEXTURE_2D, Texture);
glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE); {Texture blends with object background}
// glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_DECAL); {Texture does NOT blend with object background}

{ Select a filtering type. BiLinear filtering produces very good results with little performance impact
GL_NEAREST - Basic texture (grainy looking texture)
GL_LINEAR - BiLinear filtering
GL_LINEAR_MIPMAP_NEAREST - Basic mipmapped texture
GL_LINEAR_MIPMAP_LINEAR - BiLinear Mipmapped texture
}

if Filter then
begin
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); { only first two can be used }
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_LINEAR{GL_LINEAR}); { all of the above can be used }
end
else
begin
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); { only first two can be used }
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); { all of the above can be used }
end;

if Format = GL_RGBA then
gluBuild2DMipmaps(GL_TEXTURE_2D, 4, Width, Height, GL_RGBA, GL_UNSIGNED_BYTE, pData)
// glTexImage2D(GL_TEXTURE_2D, 0, 4, Width, Height, 0, GL_RGBA, GL_UNSIGNED_BYTE, pData) // Use when not wanting mipmaps to be built by openGL
else
gluBuild2DMipmaps(GL_TEXTURE_2D, 3, Width, Height, GL_RGB, GL_UNSIGNED_BYTE, pData);
// glTexImage2D(GL_TEXTURE_2D, 0, 3, Width, Height, 0, GL_RGB, GL_UNSIGNED_BYTE, pData); // Use when not wanting mipmaps to be built by openGL

Result := Texture;
end;


 
Ketmar ©   (2002-10-22 14:18) [9]

2Gandalf:
точно ВАША? а то что-то код уж больно знаком... и комментарии... и имена переменных... %-)) "красть - некрасиво" (ц)

Satanas Nobiscum! 22-Oct-XXXVII A.S.


 
Gandalf   (2002-10-22 19:01) [10]

Моя-моя, код старый, базировался на... дай бог памяти на каком-то примере. Ну и коментарии с тех пор и перекочевал, зачем убирать-то. Собственно букв-то всего 33, иногда совпадают :)
Вообщем-то я не придендую, на авторство. Если найдешь копирайты присылай, вставлю.

ЗЫ: В английском алфавите букв еще меньше. :))

ЗЗЫ: Нот вообще 7 штук :)))


 
Ketmar ©   (2002-10-22 22:08) [11]

что-то помнится, что код то ли Яна Хорна, то ли Кристиана Хакбарта. но точно не скажу. ну да ладно, фиг там те копирайты, я так, просто из вредности, чтобы докопаться %-))

Satanas Nobiscum! 22-Oct-XXXVII A.S.


 
Gandalf   (2002-10-23 21:02) [12]

>что-то помнится, что код то ли Яна Хорна, то ли Кристиана >Хакбарта. но точно не скажу.
OK. Code you can see up Copyright Yan Horn XOR Cristian Hacbart.

>ну да ладно, фиг там те копирайты, я так, просто из вредности, >чтобы докопаться %-))
Да я понял ;) Полезно когда такой человек, пару раз обломает и дурацких вопросов становится меньше. Народ лишьний раз поиск запускает, ЧаВо читает. Ладно, мы от темы отошли. Надеюсь АРТЕМКЕ код помог.


 
APTEMKA ©   (2002-10-28 02:26) [13]

Ребята извените что так долго не писал проблемы с инетом были.
Спасибо что ответили.
Но у меня этот код не работает, может я что не так делаю.
Если не трудно какой нибудь пример пошлите на почту forum_delphi@rambler.ru Спасибо.



Страницы: 1 вся ветка

Текущий архив: 2003.03.27;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.019 c
14-88224
godfather
2003-03-11 11:57
2003.03.27
надо ли платить


4-88291
DVM
2003-01-29 16:12
2003.03.27
Список окон которые на таскбаре.


1-87939
Makhanev A.S.
2003-03-16 23:20
2003.03.27
ShellTreeView&ShellListView ...


1-88051
Evgeny
2003-03-14 17:50
2003.03.27
TStringList


14-88133
Romkin
2003-03-12 16:36
2003.03.27
А вот и задачка :-))