Текущий архив: 2003.07.07;
Скачать: CL | DM;
Вниз
OpenGL Найти похожие ветки
← →
Gayrus (2003-01-24 02:42) [0]Пишу небольшую игру, так вот, когда вызывается консоль( на ней буквы с прозрачным фоном ), то стекло на карте становится не прозрачным! Может что подскажите?
← →
Danlicha (2003-01-24 03:00) [1]Yes!
← →
Ketmar (2003-01-24 10:22) [2]все та же 17-я строка.
Satanas Nobiscum! 24-Jan-XXXVIII A.S.
← →
MRB_SPB (2003-01-24 10:30) [3]Маловато информации для размышления
← →
Gayrus (2003-01-25 11:24) [4]
glNewList(GlassL);
glPushMatrix;
glEnable(GL_BLEND);
// Само-собой где-то здесь я вставляю текстуру с прозрачным белым фоном
glBlendFunc(GL_DST_ALPHA,GL_SRC_ALPHA_SATURATE);
glBegin(GL_QUADS);
glNormal3f(0,0,1);
glTexCoord2d(0,0);
glVertex3d(x1,y1,z1);
glTexCoord2d(0,1);
glVertex3d(x1,y1,z2);
glTexCoord2d(1,1);
glVertex3d(x2,y2,z2);
glTexCoord2d(1,0);
glVertex3d(x2,y2,z1);
glEnd;
glDisable(GL_BLEND);
glPopMatrix;
glEndList;
// Вывод:
glDepthMask(GL_FALSE);// Временно отключаем тест глубины, между
glCallList(GlassL); // объектами в этом листе, но сквозь
glDepthMask(GL_TRUE); // остальное они не просвечивают.
То что написано выше перестаёт быть прозрачным если я вывожу текст следующей процедурой:
Procedure DrawString(X, Y : Integer; Text : String);
var J,I:Cardinal;
H,V:glFloat;
Col:Boolean;
Key:Byte;
begin
If Length(Text)>0 then begin
Col:=False;
J:=0;
glEnable(GL_TEXTURE_2D);
glBlendFunc(GL_SRC_ALPHA,GL_ONE_MINUS_SRC_ALPHA);
glEnable(GL_BLEND);
glDisable(GL_DEPTH_TEST);
glMatrixMode(GL_PROJECTION);
glPushMatrix;
glLoadIdentity;
glOrtho(0, Width, Height,0,-1,1);
// FontTex - Текстура с шрифтом
glBindTexture(GL_TEXTURE_2D, FontTex);
Y:=(LineCount-23)*12+Y;
glTranslate(X,Y,0);
glColor3f(1, 1, 1); // Text color
For I:=1 to Length(Text)do begin
Key:=Ord(Text[i])-32;
If Col then begin
Case Key of
16: glColor3f(0, 0, 0); // 0
17: glColor3f(1, 0, 0); // 1
18: glColor3f(0, 1, 0); // 2
19: glColor3f(1, 1, 0); // 3
20: glColor3f(0, 0, 1); // 4
21: glColor3f(0, 1, 1); // 5
22: glColor3f(1, 0, 1); // 6
23: glColor3f(1, 1, 1); // 7
24: glColor3f(0, 0, 0); // 8
25: glColor3f(1, 0, 0); // 9
else begin
V:=62 div 25;
H:=62 mod 25;
glBegin(GL_QUADS);
glTexCoord2f(H*10/256 ,V*13/256); glVertex3f((J*12),0,0);
glTexCoord2f(H*10/256+9/256,V*13/256); glVertex3f(((J+1)*12),0, 0);
glTexCoord2f(H*10/256+9/256,V*13/256+12/256); glVertex3f(((J+1)*12),12, 0);
glTexCoord2f(H*10/256 ,V*13/256+12/256); glVertex3f((J*12),12, 0);
glEnd;
Inc(J);
V:=Key div 25;
H:=Key mod 25;
glBegin(GL_QUADS);
glTexCoord2f(H*10/256 ,V*13/256); glVertex3f((J*12),0,0);
glTexCoord2f(H*10/256+9/256,V*13/256); glVertex3f(((J+1)*12),0, 0);
glTexCoord2f(H*10/256+9/256,V*13/256+12/256); glVertex3f(((J+1)*12),12, 0);
glTexCoord2f(H*10/256 ,V*13/256+12/256); glVertex3f((J*12),12, 0);
glEnd;
Inc(J);
end;
end;
Col:=False;
end else begin
If(I<Length(Text))and(Key=62)then Col:=True // Eсли ^
else begin
V:=Key div 25;
H:=Key mod 25;
glBegin(GL_QUADS);
glTexCoord2f(H*10/256 ,V*13/256); glVertex3f(J*12,0,0);
glTexCoord2f(H*10/256+9/256,V*13/256); glVertex3f((J+1)*12,0, 0);
glTexCoord2f(H*10/256+9/256,V*13/256+12/256); glVertex3f((J+1)*12,12, 0);
glTexCoord2f(H*10/256 ,V*13/256+12/256); glVertex3f(J*12,12, 0);
glEnd;
Inc(J);
end;
end;
end;
glColor3f(1, 1, 1);
glPopMatrix;
glMatrixMode(GL_MODELVIEW);
end;
end;
P.S. Если что-то не понятно, спрашивайте.
← →
Ketmar (2003-01-25 11:49) [5]однако порядок вывода? к тому же учтите, что depth-test вы отключили, но это не мешает z-buffer"у радостно заполняться вашим выводом. вывод не тестируется на предмет "глубины", но все равно меняет z-buffer. проверьте, не в этом ли проблема. я однажды забыл, и долго искал модели кораблей, которые были битмапом %-))
Satanas Nobiscum! 25-Jan-XXXVIII A.S.
← →
Ketmar (2003-01-25 11:55) [6]однако порядок вывода? к тому же учтите, что depth-test вы отключили, но это не мешает z-buffer"у радостно заполняться вашим выводом. вывод не тестируется на предмет "глубины", но все равно меняет z-buffer. проверьте, не в этом ли проблема. я однажды забыл, и долго искал модели кораблей, которые были под битмапом %-))
Satanas Nobiscum! 25-Jan-XXXVIII A.S.
← →
Gayrus (2003-01-25 14:15) [7]Сначала я вывожу всё содержимое карты(в том числе и стекло), а потом весь текст и не хотелось бы менять, но попробую.
Страницы: 1 вся ветка
Текущий архив: 2003.07.07;
Скачать: CL | DM;
Память: 0.46 MB
Время: 0.006 c