Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Ландшафт [Delphi, OpenGL]


Signate ©   (2005-09-22 15:18:00) 

Есть трехменый ландшафт, который состоит из n поверхностей...
например камень, снег, трава, песок... как сделать плавные переходы между  этими текстурами?


Signate   (2005-09-22 18:17:00) [1]


> 1) Какой режим блендинга?

  glBlendFunc(GL_SRC_ALPHA,GL_ONE_MINUS_SRC_ALPHA);


> 2) Почему не glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE,
>  GL_MODULATE)?

Тогда текстура окрашивалась в rgb


XProger   (2005-09-22 18:15:00) [2]

Signate,
1) Какой режим блендинга?
2) Почему не glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE)?


Signate   (2005-09-22 18:12:00) [3]

сделал такой тест

     SelectTexture(Tile1);
     glBegin(GL_TRIANGLES);
        glColor4f(r,g,b,0);
        glTexCoord2f(0,1);
        glVertex2f(0,0);

        glColor4f(r,g,b,0);
        glTexCoord2f(1,1);
        glVertex2f(SW,0);

        glColor4f(r,g,b,1);
        glTexCoord2f(0,0);
        glVertex2f(0,SH);

        glColor4f(r,g,b,1);
        glTexCoord2f(1,0);
        glVertex2f(SW,SH);

        glColor4f(r,g,b,1);
        glTexCoord2f(0,0);
        glVertex2f(0,SH);

        glColor4f(r,g,b,0);
        glTexCoord2f(1,1);
        glVertex2f(SW,0);
     glEnd;

     SelectTexture(Tile2);
     glBegin(GL_TRIANGLES);
        glColor4f(r,g,b,1);
        glTexCoord2f(0,1);
        glVertex2f(0,0);

        glColor4f(r,g,b,1);
        glTexCoord2f(1,1);
        glVertex2f(SW,0);

        glColor4f(r,g,b,0);
        glTexCoord2f(0,0);
        glVertex2f(0,SH);

        glColor4f(r,g,b,0);
        glTexCoord2f(1,0);
        glVertex2f(SW,SH);

        glColor4f(r,g,b,0);
        glTexCoord2f(0,0);
        glVertex2f(0,SH);

        glColor4f(r,g,b,1);
        glTexCoord2f(1,1);
        glVertex2f(SW,0);
     glEnd;


текстура переходит одна в другую, но посередине (в центре перехода) четко видно засветление... с чем это может быть связано...?

r,g,b = 0 все текстуры с  glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_DECAL);


Zeqfreed   (2005-09-22 17:30:00) [4]

Signate ©   (22.09.05 15:58) [2]
Если опираться на подход, описанный в статье, то да, при отриисовке очередной вершины для неё необходимо задавать вычисленную прозрачность. Но, в принципе, можно создать текстуры с альфа-каналом и накладывать их друг на друга.


Signate   (2005-09-22 15:58:00) [5]

Хорошая статья... помню читал ее на ai.extractor.ru

Вот как в OpenGL задавать прозрачность вертексам чтоли... ? (судя по статье)


Zeqfreed   (2005-09-22 15:43:00) [6]

Signate ©   (22.09.05 15:18)

> как сделать плавные переходы между  этими текстурами?

Использовать альфа-канал для текстур и соответствующие флаги при создании оных?

p.s. Думаю, эта статья будет полезной: http://mirgames.ru/article/gamedev/aigame


Наверх

Титульная страница Поиск, карта сайта Написать письмо