játékfejlesztés.hu
FórumGarázsprojectekCikkekSegédletekJf.hu versenyekKapcsolatokEgyebek
Legaktívabb fórumozók:
Asylum:    5448
FZoli:    4892
Kuz:    4455
gaborlabor:    4449
kicsy:    4304
TPG:    3402
monostoria:    3284
DMG:    3172
HomeGnome:    2919
Matzi:    2520

Pretender:    2498
szeki:    2440
Seeting:    2306
Geri:    2188
Orphy:    1893
Joga:    1791
Bacce:    1783
MaNiAc:    1735
ddbwo:    1625
syam:    1491
Frissebbek | Korábbi postok
[1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [15] [20] [25] [30] [35] [40] [45] [50] [55] [60] [65] > 70 < [75] [80] [82]
gaborlabor - Moderátor | 4449 hsz       Online status #21577   2006.07.13 08:36 GMT+1 óra  
Kipróbáltam amit mondtál. Az idlefunc-ot teljesen kivettem és a glutPostRedisplay-t beirtam a renderelő függvény végére. Valószínűleg nem azzal volt a baj. Az eredmény:
- A program általánosságban hozzányúlás nélkül 10 fps-sel kevesebbel megy mint eddig. Most igy 130-cal ment átlagban.
- A jelenség továbbra is fentáll, csak azzal a különbséggel hogy most nem 300-ra ugrik fel az fps, hanem csak 260-ra.

Ez jelenség nem is igazán probléma nálam, mert müködik igy is a program. Viszont sehogy nem fér a fejembe, hogy hogy képes megduplázódni az fps érték. Meg ha egyszer tud menni 260-300 FPS-sel, akkor alapból miért nem megy annyival?

   
cs_adam - Tag | 11 hsz       Online status #21570   2006.07.13 07:06 GMT+1 óra  
Egy GLUT-ot használó (és működő) alkalmazás (nevezetesen a lib3ds példa programja) a DisplayFunc vége:
...
glutSwapBuffers();
glutPostRedisplay();
...
Szerintem ha ezeket berakod a DisplayFunc végére te is, és az Idle-ben nem renderelsz, akkor komoly esély van rá hogy megjavul.
   
gaborlabor - Moderátor | 4449 hsz       Online status #21569   2006.07.13 06:52 GMT+1 óra  
Az IdleFunc-kal kapcsolatban lehet hogy igazad van, de ezt nem magamtól vettem hogy ott rendereltetem ujra. Rengeteg tutorialban és leirásban láttam, hogy a glutIdleFunc()-ban ez áll:
glutPostRedisplay(); vagyis ujrarajzoltatja a képernyőt. Leggyakrabban ezt azért nem használják számításokra, mert ez akkor hívódik meg ha a proci "ráér", és így minden gépen más sebességgel futna a program, a proci órajelétől függően, ezt meg senki nem akarja. Kipróbáltam hogy nem használo az IdleFunc-ot, úgy meg nem frissíti a képetm tehát 1 FPS-sel megy és nem frissül a tartalom. Ezért gondolom kell az oda. Még mindíg azt furcsállom hogy miért ugrik meg az fps érték.

   
cs_adam - Tag | 11 hsz       Online status #21559   2006.07.13 05:19 GMT+1 óra  
A figyelmetlenségért elnézést kérek.
Ha teljes képernyős, és átváltasz, akkor nincs már hova rendereljen. Ezért továbbra is fenn tartom hogy akkor nem kéne renderelnie, legfeljebb off-screen bufferekre.
Nem emlékszem sokra a glut használatából, de a glutIdleFunc() mintha kisebb számításokra lenne, és nem további renderelésre. Talán éppen ez a gond. Próbáld meg hogy ott nem renderelsz semmit, csak a DisplayFunc-ban.
   
gaborlabor - Moderátor | 4449 hsz       Online status #21532   2006.07.12 15:54 GMT+1 óra  
Köszi, értem mire gondolsz. Csakhogy zárójelben ott van hogy Fraps-szel mérve. Tehát az értékek valószínűleg reálisak.
Nekem nem tűnik furcsának hogy inaktív állapotban is renderel. Nem a tálcán van csak inaktiv mert átváltok a konzol ablakra. Viszont a glutIdleFunc() miatt amikor "ráér" akkor renderel ujra. És a helyzet továbbra is ez, függetlenül a program összetettségétől és méretétől.

   
cs_adam - Tag | 11 hsz       Online status #21508   2006.07.12 13:03 GMT+1 óra  
Eleve értelmetlen fps-ről beszélni, ha inaktív, hiszen nem kéne rajzolnia semmit. Ha mégis rajzol, akkor kezdd itt a javítgatását a proginak. A 80-90 fura, mert ha rendes program inaktív állapotban nagyon hamar végigér a main loop-on, és a 80-90 helyett nagyságrendekkel magasabb érték kéne. A felgyorsulásra azt javaslom nézd meg FRAPS-szel, vagy valami megbízható cuccal, hátha csak az fps számlálód rossz.
   
gaborlabor - Moderátor | 4449 hsz       Online status #21359   2006.07.10 14:55 GMT+1 óra  
Hi. Van egy dolog, amit már régóta nem tudok megérteni, és kicsit furcsállom.
Van egy win32 console application projektem, és abban irtam az opengl-es progit. GLUT-ot használ alakozáshoz, és teljes képernyős módhoz. Ez a progi átlag 140-150 FPS-sel megy (Fraps-szel mérve). Ha alt+tabbal átváltok a console ablakra, akkor látom, hogy a háttérben lévő teljes képernyős ablak kb 80-90 FPS-sel megy. És azt nem értem, hogy miért van az, hogy mikor visszaváltok alt+tabbal, akkor a megszokott 140-15 FPS helyett felugrik 290-310-re, és úgy is marad egészen a kilépésig. Szal nekem ez egy kicsit furcsa. Miért lesz attól gyorsabb hogy átváltok róla, aztán meg visszaváltok? Tudtok erre valami magyarázatot?
Köszi!

   
Hacker - Törzstag | 567 hsz       Online status #21097   2006.07.08 01:37 GMT+1 óra  
OpenIL-ben hogyan lehet beállítani a Color Key-t vagyis a transparent color-t. Az ilKeyColor-al bűvészkedtem de sajnos eddig még eredménytelenül .
No [img] !
Programozz ne háborúzz!!!!

   
gaborlabor - Moderátor | 4449 hsz       Online status #20987   2006.07.06 04:31 GMT+1 óra  
nem saját loader, hanem a nehe lesson33-ból származik. szinte egy az egyben lekoppintottam, és csak azt irtam át benne ami nagyon muszály volt, pl hogy ne csak 2 textúrát töltsön be a loader hanem amennyit akarok meg ilyenek. kivettem a sallangokat, és beágyaztam az én progimba. (vagyis az én progimat építettem eköré ). De most úgy néz ki, hogy müxik! A blendFunc-cal kellett variálni, úgy jó lett ahogy warlock irta. Köszönöm! Most müködik az hogy betöltök egy textúrát amben van átlátszó rész. Most akarom kipróbálni azt, hogy több textúrát rakok egymás fölé és mindegyikben van átlátszó rész...

szerk.:
kipróbáltam azt hogy 2 polygont rajzoltam és mind a kettőre ugyanazt a keretet ábrázoló textúrát húztam, és végre úgy működik ahogy kell! Mindenkinek köszönöm a segítséget!!

Ezt a hozzászólást gaborlabor módosította (2006.07.06 04:46 GMT+1 óra, ---)

   
warlock - Törzstag | 704 hsz       Online status #20979   2006.07.06 03:02 GMT+1 óra  
már amennyiben jó a loadered

   
Hacker - Törzstag | 567 hsz       Online status #20978   2006.07.06 03:02 GMT+1 óra  
Akkor nincs ötletem. Újra csak Nehe -t ajánlom. Nézz szét: http://nehe.gamedev.net/lesson.asp?index=02
No [img] !
Programozz ne háborúzz!!!!

   
warlock - Törzstag | 704 hsz       Online status #20977   2006.07.06 03:01 GMT+1 óra  
glEnable(GL_TEXTURE_2D);
glEnable(GL_BLEND);

glBlendFunc(GL_SRC_ALPHA,GL_ONE_MINUS_SRC_ALPHA);

   
gaborlabor - Moderátor | 4449 hsz       Online status #20976   2006.07.06 02:58 GMT+1 óra  
Kipróbáltam, sajnos ugyanaz
próbáltam 4-essel is meg GL_RGBA-val is, de mindig ugyanaz, mintha 3ason hagytam volna.

   
Hacker - Törzstag | 567 hsz       Online status #20975   2006.07.06 02:33 GMT+1 óra  
Újra csere :

Kód:
glTexImage2D(GL_TEXTURE_2D, 0, 3, texture[loop].width, texture[loop].height, 0, GL_RGBA, GL_UNSIGNED_BYTE, texture[loop].imageData);


erre:

Kód:
glTexImage2D(GL_TEXTURE_2D, 0, 4, texture[loop].width, texture[loop].height, 0, GL_RGBA, GL_UNSIGNED_BYTE, texture[loop].imageData);


Bár ez csak enyhe sejtés, de szerintem érdemes kipróbálni. Az InternalFormat vagyis a 3. paraméter arra valaó, hogy kijelölöd milyen színkomponenseket fogod hsználni textúrázásnál. R,G,B,A vagyis 4-et a te esetedben.
No [img] !
Programozz ne háborúzz!!!!

   
gaborlabor - Moderátor | 4449 hsz       Online status #20974   2006.07.06 02:22 GMT+1 óra  
Tényleg ez volt a baj! Köszi, végre igy sikerült betöltenem 32 bites képet ami meg is jelent rendesen.
Most már csak az van hátra, hogy az átlátszó rész tényleg átlátszó legyen.
glEnable(GL_BLEND);
glBlendFunc(...,...);
Ezeket beirtam a megfelelő helyre. A BlendFunc paramétereit próbálgattam, de eddig nem sikerült eltalálnom a megfelelőt. Nekem csak egy táblázatom van amiben fel vannak sorolva hogy mi lehet a 2 paraméter, de nincs leirva hogy mikor melyiket kell használni.
Ilyenkor melyiket érdemes használni?
Köszi!

   
Hacker - Törzstag | 567 hsz       Online status #20970   2006.07.06 01:06 GMT+1 óra  
Szerintem annyi a probléma, hogy ezt kell átírni:

Kód:
glTexImage2D(GL_TEXTURE_2D, 0, 3, texture[loop].width, texture[loop].height, 0, GL_RGB, GL_UNSIGNED_BYTE, texture[loop].imageData);

erre:

Kód:
glTexImage2D(GL_TEXTURE_2D, 0, 3, texture[loop].width, texture[loop].height, 0, GL_RGBA, GL_UNSIGNED_BYTE, texture[loop].imageData);


A GL_RGBA jelöli azt, hogy 4 db értéket vár a textúrára még hozzá előjel nélküli char-t.
No [img] !
Programozz ne háborúzz!!!!

   
gaborlabor - Moderátor | 4449 hsz       Online status #20968   2006.07.05 23:19 GMT+1 óra  
Hi! Hát akkor azért nem működött! Akkor mégsem a blendinggel van a baj! Én végig 24 bites tga fájlokat használtam, mert csak ezeket tölti be rendesen a loader! A 32 bites fájlokat használhatatlanul jeleníti meg. Ja, és ahhoz kellene, hogy ahol a textúra átlátszó, ott tényleg átlátszó legyen, de máshol nem mossa össze a színeket. Pl tudjak olyat csinálni, hogy olyan legyen mintha üres képkereteket raknék egymásra, de a lyukakon át lehet látni. Csakhogy ez 24 bites tga fájlokkal nem fog menni. Ezt kérdeztem már korábban is, hogy az a nehe féle (lesson33) betöltő, az nem tud betölteni 32 bites fájlokat, vagy csak nálam nem?

---
szerk.: Elvileg tudnia kéne betölteni 32 biteset is, mert van benne egy ilyen rész:
typedef struct
{
GLubyte Header[12]; // File Header To Determine File Type
} TGAHeader;

typedef struct
{
GLubyte header[6]; // Holds The First 6 Useful Bytes Of The File
GLuint bytesPerPixel; // Number Of BYTES Per Pixel (3 Or 4)
GLuint imageSize; // Amount Of Memory Needed To Hold The Image
GLuint type; // The Type Of Image, GL_RGB Or GL_RGBA
GLuint Height; // Height Of Image
GLuint Width; // Width Of Image
GLuint Bpp; // Number Of BITS Per Pixel (24 Or 32)
} TGA;

A megjegyzésben ott van hogy 24 or 32. Akkor viszont miért nem működik nálam, mikor ebben a részben semmit nem írtam át?

THX

   
KergeDelfin - Törzstag | 667 hsz       Online status #20964   2006.07.05 20:47 GMT+1 óra  
Hali! Két fontos dolog:
- A 24 bites TGA fileoknál NINCS alpha csatorna, szóval az eloszlás 8-8-8bit.
A glEnable(GL_BLEND); pedig ne a loading részbe kerüljön, hanem a renderbe, az elé az objektum elé amit átlátszóva akarsz tenni.
Kód:
glBindTexture(GL_TEXTURE_2D, texture[2].texID);
glColor4d(1.0, 1.0, 1.0, 0.5);
glEnable(GL_BLEND);
glBlendFunc(GL_DST_COLOR, GL_ONE_MINUS_SRC_ALPHA);
glBegin(GL_QUADS);
glTexCoord2f(0.0f, 0.0f); glVertex2f(0.0f, 0.0f);
glTexCoord2f(1.0f, 0.0f); glVertex2f(128.0f, 0.0f);
glTexCoord2f(1.0f, 1.0f); glVertex2f(128.0f, 128.0f);
glTexCoord2f(0.0f, 1.0f); glVertex2f(0.0f, 128.0f);
glEnd();
glDisable(GL_BLEND);
// .....

Persze a blendfunc attól függ hogy mit is akarsz csinálni
Ore wa... yurusaretaintadomo... un... Ore wa yurusaretai...

Isles of Tranquility - Ecco fanoknak kötelező
   
gaborlabor - Moderátor | 4449 hsz       Online status #20962   2006.07.05 16:49 GMT+1 óra  
Semmi gond, énis hulla vagyok, de én tudatában voltam annak, hogy a blendelés nincs bekapcsolva. Most kipróbáltam úgy hogy bekapcsoltam. A loading függvénybe irtam be ezeket:
glEnable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA,GL_ONE);
De az eredmény még mindíg nem jó. A program egy kék négyzetet jelenitett meg idáig, melynek a közepén volt egy átlátszó négyzet ami fehér volt. Most hogy bekapcsoltam a blendelést, és a háttér narancssárgás-barna, így a négyzet kék része lila lett, de a közepén lévő átlátszó négyzet fehér maradt!
Most mit tudnék kezdeni vele?
Köszi.

-----
szerk.:

Azzal is próbálkoztam, hogy a glBlendFunc() paramétereit próbálgattam egy táblázat alapján. De sajnos igy sem jött össze a dolog.

Ezt a hozzászólást gaborlabor módosította (2006.07.05 17:02 GMT+1 óra, ---)

   
MaNiAc - Szerkesztő | 1735 hsz       Online status #20960   2006.07.05 16:05 GMT+1 óra  
Bocsi, csak átfutottam a kódot, mert hulla vagyok és még az oldalam se volt időm upgradelni ma a meló miatt A blendelés nincs bekapcsolva vagy csak én nem láttam?
Dare to imagine!
http://www.insaneidea.hu
   
gaborlabor - Moderátor | 4449 hsz       Online status #20957   2006.07.05 15:56 GMT+1 óra  
Az előző hsz-em kiegészítéseként (nem tudom szerkeszteni):
Az előbb írt problémán kívül van még egy, ami talán nagyobb is. Hiába töltök be olyan 24 bites tga fájlt, amin elvileg van átlátszó rész, a programban az mégis fehérrel jelenik meg. Hogy működjön, valamit módosítanom kell a textúrázásnál?
Azt hiszem, a legjobb lesz, ha bemásolom ide a main.cpp teljes tartalmát. Ebben van benne a betöltő függvény (legalábbis egy része) is, a hozzá tartozó 2 fejállományt és a másik .cpp fájlt nem módosítottam.
main.cpp:

#pragma comment(lib, "Glu32.lib"
#define GLUT_DISABLE_ATEXIT_HACK

#include <stdlib.h>
#include <windows.h>
#include <stdio.h>
#include <gl\glu.h>
#include <GL/glut.h>
#include "texture.h"

using namespace std;

bool LoadTGA(Texture *, char *);

Texture texture[3]; // Storage For 3 Textures

void loading();
void LoadGLTextures();
void reshape(GLsizei, GLsizei);
void render();
void keyboardfunc(unsigned char key, int x, int y);
void idle();

int numberoftextures;

int main(int argc, char** argv)
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB);
glutGameModeString("1024x768:16";
glutEnterGameMode();
glutSetCursor(GLUT_CURSOR_NONE);
loading();
glutReshapeFunc(reshape);
glutDisplayFunc(render);
glutKeyboardFunc(keyboardfunc);
glutIdleFunc(idle);
glutMainLoop();
return 0;
}


void reshape(GLsizei w, GLsizei h)
{
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glOrtho(0, 1024, 0, 768, -1, 1);

glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
glViewport(0, 0, w, h);
}

void loading()
{
glEnable(GL_TEXTURE_2D);
glClearColor(0.7f, 0.4f, 0.2f, 0.5f);
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
LoadGLTextures();
}

void render()
{
glClear(GL_COLOR_BUFFER_BIT);
glBindTexture(GL_TEXTURE_2D, texture[2].texID);
glColor4d(1.0, 1.0, 1.0, 1.0);
glBegin(GL_QUADS);
glTexCoord2f(0.0f, 0.0f); glVertex2f(0.0f, 0.0f);
glTexCoord2f(1.0f, 0.0f); glVertex2f(128.0f, 0.0f);
glTexCoord2f(1.0f, 1.0f); glVertex2f(128.0f, 128.0f);
glTexCoord2f(0.0f, 1.0f); glVertex2f(0.0f, 128.0f);
glEnd();
glutSwapBuffers();
}

void keyboardfunc(unsigned char key, int x, int y)
{
switch(key)
{
case 27 : exit(0); break;
}
}

void idle()
{
glutPostRedisplay();
}

void LoadGLTextures() // Load Bitmaps And Convert To Textures
{
numberoftextures = 3;
// Load The Bitmap, Check For Errors.
if (
LoadTGA(&texture[0], "Data/uncompressed.tga" &&
LoadTGA(&texture[1], "Data/compressed.tga" &&
LoadTGA(&texture[2], "Data/atlatszo.tga"
)
{
for (int loop=0; loop<numberoftextures; loop++) // Loop Through Both Textures
{
// Typical Texture Generation Using Data From The TGA ( CHANGE )
glGenTextures(1, &texture[loop].texID); // Create The Texture ( CHANGE )
glBindTexture(GL_TEXTURE_2D, texture[loop].texID);
glTexImage2D(GL_TEXTURE_2D, 0, 3, texture[loop].width, texture[loop].height, 0, GL_RGB, GL_UNSIGNED_BYTE, texture[loop].imageData);
glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_LINEAR);
glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_LINEAR);

if (texture[loop].imageData) // If Texture Image Exists ( CHANGE )
{
free(texture[loop].imageData); // Free The Texture Image Memory ( CHANGE )
}
}
}
}

a LoadGLTextures() függvényben annyit módosítottam, hogy int helyett void tipusura irtam. Ezzel a programmal nekem sikerült betöltenem a tga fájlokat és meg is jelentek rendesen, kivéve az átlátszó részeket, mert azok fehéren jelentek meg. Az atlatszo.tga fájl, amit használtam:
http://bullshit.dox.hu/atlatszo.tga

Van valami ötletetek, hogy mi miatt nem jelenik meg rendesen az átlátszó rész?

Köszi előre is!

   
gaborlabor - Moderátor | 4449 hsz       Online status #20952   2006.07.05 14:52 GMT+1 óra  
Na, végre megoldottam hogya NeHe féle tga betöltő működjön az én programom alól is. Egy gondom van vele: a 32 bites tga fájlokat rosszul jeleniti meg (használhatatlan), csak a 24 bitesek működnek rendesen.
Ez a betöltő hiányossága, vagy én rontottam el valamit?
Nagy baj az, hogyha jóminőségű képek esetén is csak 24 biteset használok? Ilyenkor hogy oszlik el a 24 bit? 6bit R + 6bit G + 6bit B + 6bit A ? Nem kevés ez egy kicsit?

THX

   
gaborlabor - Moderátor | 4449 hsz       Online status #20946   2006.07.05 12:52 GMT+1 óra  
nem, nem, a libekkel és társaival minden rendben van. (különbeen a többi progimat sem tudtam volna lefordítani). igazából ezt a problémát már megoldottam, félig-meddig az én hibám volt.
Most még a textúrázással próbálkozok, több-kevesebb sikerrel. a NeHe-s fájlt át akarom irni, mert nekem nem kellenek azok a sallangok és amúgyis glut-ot használok. most úgy néz ki, sínen vagyok. ha valami nem müxik, majd még írok
Köszönöm mindenkinek a segítséget!

Ezt a hozzászólást gaborlabor módosította (2006.07.05 13:01 GMT+1 óra, ---)

   
Birmacher - Törzstag | 516 hsz       Online status #20937   2006.07.05 11:24 GMT+1 óra  
gondolom kell a gluthoz lib fájl... ha nem linkelted be lehet az a baj, és a glut az nem találtatik meg a gépen, szal külön le kell szedni... látatlanban ennyi tippem van

   
Hacker - Törzstag | 567 hsz       Online status #20926   2006.07.05 09:28 GMT+1 óra  
Milyen hibákat ír ki?
No [img] !
Programozz ne háborúzz!!!!

   
gaborlabor - Moderátor | 4449 hsz       Online status #20920   2006.07.05 08:35 GMT+1 óra  
http://nehe.gamedev.net/data/lessons/lesson.asp?lesson=33
Innét letöltöttem a dev-c++os projektet. Viszont ha a #include <gl\glut.h> -t hozzáírom, akkor fordításnál hibákat ir ki. Mi lehet a gond?

   
gaborlabor - Moderátor | 4449 hsz       Online status #20911   2006.07.05 07:26 GMT+1 óra  
Köszönöm a sok infot!
Jlenleg a Ne-He féle TGA betöltővel babrálok. Fél órán belül kiderül, hogy jó-e.
Ami Warlock mond, hogy tetszene nekem, az tetszik is, de ha már belekezdtem ebbe, akkor ezt befejezem. Ja, és jelen esetben az is jó, ha csak lyukakat tudok tenni bele. De mivel később valószínűleg szükségem lesz átmenetre is, ezért a legjobb ha most sikerül olyanra megoldani.
A PNG az lehet hogy tényleg jobb lenne, mint a TGA, de ha már ennek álltam neki...
Elég sok időm megy el az angol-> magyar fordítással (legalább gyakorlom), meg még a kódot is meg kell emésztenem. Remélem sikerülni fog.

   
MaNiAc - Szerkesztő | 1735 hsz       Online status #20910   2006.07.05 06:58 GMT+1 óra  
Az a Color Keying, amit eddig hárman is leírtatok Szvsz az alpha textúra jobb, mert a color key-jel "lyukat tudsz csinálni a textúrába", de fokozatos átlátszóságot nem...

Szóval TGA inkább... Báár, szvsz PNG formátummal jobban jár, mert sokkal kisebb, mint a TGA, mégis lossless tömörítéssel dolgozik. Ezt is lehet szinte minden normálisabb progival halomra gyártani, DevIL (aka. OpenIL) segítségével meg betölteni...
Dare to imagine!
http://www.insaneidea.hu
   
warlock - Törzstag | 704 hsz       Online status #20909   2006.07.05 06:16 GMT+1 óra  
használhatsz tgat amelyet photoshoppal vagy gimpel vagy... készítesz el
VAGY és ez a megoldás sztem tetszeni fog neked
azokat a részeket a textúrán amelyeknek átettszőnek kéne lenni feketével jelölöd és a megfelelő blendfuncal szűröd a feketét a tesztúrából

   
Hacker - Törzstag | 567 hsz       Online status #20907   2006.07.05 05:52 GMT+1 óra  
Mondjuk én az OpenIL-t ajánlanám a tga fájlok betöltésére. De ha magad szeretnéd megírni a loader akkor itten van egy tutorial:

http://nehe.gamedev.net/data/lessons/lesson.asp?lesson=33

Egy csomó ingyenes rajzprogram van amelyekkel tga-kat készíthetsz, mint pl. a Gimp (ha jól tudom).
No [img] !
Programozz ne háborúzz!!!!

   
gaborlabor - Moderátor | 4449 hsz       Online status #20906   2006.07.05 05:48 GMT+1 óra  
Huhh, megint megelőztél
Szóval TGA. Valahol már hallottam róla... De mivel tudok TGA képet készíteni? A betöltése sokban különbözik a bmp-étől?
Köszi.

   
gaborlabor - Moderátor | 4449 hsz       Online status #20905   2006.07.05 05:45 GMT+1 óra  
Aha, értem. Legjobb tudomásom szerint OGL alatt ez nem ilyen egyzserű. Még mindig warlock válaszán rágódok, miszerint használjak alphás textúrát. De bmp-ben nincs alpha, nem? Akkor milyen formátumot használjak, stb? Én még nagyon kezdő vagyok ebben, de rengeteg kérdésemre nincs válasz az ebookokban.

   
Hacker - Törzstag | 567 hsz       Online status #20904   2006.07.05 05:42 GMT+1 óra  
A tga tárol alpha értéket is.
No [img] !
Programozz ne háborúzz!!!!

   
Hacker - Törzstag | 567 hsz       Online status #20903   2006.07.05 05:41 GMT+1 óra  
Értem már. DirectX alatt meg lehetett adni egy transparent color-t. Erre gondolsz? Az nem jelent meg végül a textúrán mint szín. Azt sajnos nem tudom, hogy OGL alatt hogy kell.
No [img] !
Programozz ne háborúzz!!!!

   
gaborlabor - Moderátor | 4449 hsz       Online status #20902   2006.07.05 05:41 GMT+1 óra  
én eddig csak bmp fájlokat használtam textúrákként. de bmp fájlba lehet egyátalán átlátszó részeket tenni? szerintem nem. de akkor mit értett warlock az alatt, hogy alphás textúrát használjak? bmp helyett használjak más formátumot?

   
gaborlabor - Moderátor | 4449 hsz       Online status #20901   2006.07.05 05:15 GMT+1 óra  
Hacker: értem, hogy te mire gondolsz, de én nem erre gondoltam. Ezt meg tudtam oldani én is, de a gond azzal van amit lentebb irtam. Az ez előtti hsz-em a fontos.

   
Hacker - Törzstag | 567 hsz       Online status #20900   2006.07.05 05:12 GMT+1 óra  
Nem arra gondolsz, hogy a vertex nem látszik? Én erre gondoltam:

Kód:
glColor4f(float red, float green, float blue, float alpha);


És itt a negyedik paramétert változtatod kedved szerint.
No [img] !
Programozz ne háborúzz!!!!

   
gaborlabor - Moderátor | 4449 hsz       Online status #20899   2006.07.05 05:09 GMT+1 óra  
beast: első ránézésre erre gondolok. Itt azt irja, hogy bmp-kkel tudom megoldani, amik alapból nem támogatják az alfa csatornát (vagy vmi ilyesmi). Viszont ha tudok képszerkesztővel olyan képet készíteni amin vannak átlátszó részek, akkor azzal jobban járok, mert nem kell vele vacakolnom, nem? Mindjárt átböngészem részletesen.
warlock: ez nekem is eszembe jutott, de mivel tudok alphás textúrát csinálni? Gondolom Paint-tel nem, én eddig ezt használtam. Photoshophoz, és társaihoz sajnos nem értek, de gonsolom azzal lehett alphás képeket készíteni. És akkor az azzal készített -átlátszó részeket tartalmazó- képeket ha elmentem bmp-be, és pontosan ugyanugy használom mint az eddigieket, akkor a bizonyos ponton átlátszó lesz? Nekem nem kell valamit átírnom a kódban?

   
beast - Törzstag | 1241 hsz       Online status #20898   2006.07.05 04:28 GMT+1 óra  
Color Key
Ezt nézd át, erre gondolsz ugye?

   
warlock - Törzstag | 704 hsz       Online status #20897   2006.07.05 03:46 GMT+1 óra  
alphás textúrával

   
gaborlabor - Moderátor | 4449 hsz       Online status #20896   2006.07.05 03:45 GMT+1 óra  
Hy! Egy újabb kérdésem lenne a hozzáértőkhöz:
Hogyan tudom azt megoldani, hogy egy polygonra húzok egy textúrát, a blendinget engedélyezem rá, és hogy a textúra különböző területein különböző mértékű legyen az alpha értéke. Vagyis olyat szeretnék, hogy pl egy négyzeten van egy textúra, és a textúra középen mondjuk teljesen átlátszó, az egyik sarokban teljesen átlátszatlan, a többi 3 sarokban meg mondjuk 50%osan áttetsző.
Ezt hogyan lehet megoldani? És olyat lehet, hogy az alpha értéke ne átmentesen legyen, hanem mondjuk az egyik texelen 0, a mellette lévőn meg már 100 ?
THX

   
gaborlabor - Moderátor | 4449 hsz       Online status #20886   2006.07.04 14:53 GMT+1 óra  
áhháá! Erre gondoltam! Ez már valamivel jobban tetszik, mint a windowsos megoldás! Köszike!

   
beast - Törzstag | 1241 hsz       Online status #20885   2006.07.04 14:37 GMT+1 óra  
Utána kerestem a dolognak:
glutSetCursor( GLUT_CURSOR_NONE)
Asszem, erre gondoltál!

   
gaborlabor - Moderátor | 4449 hsz       Online status #20884   2006.07.04 14:22 GMT+1 óra  
köszi szépen, ez ideiglenes megoldásnak jó lesz. de terveim szerint egy platformfüggetlen progit szeretnék, amihez ez nem tűnik túl ideálisnak...

   
beast - Törzstag | 1241 hsz       Online status #20878   2006.07.04 13:56 GMT+1 óra  
ShowCursor(FALSE) vagy ShowCursor(TRUE), és a windows.h headerben található a függvény..

   
gaborlabor - Moderátor | 4449 hsz       Online status #20873   2006.07.04 13:48 GMT+1 óra  
hi. nem tudtok valami modszert arra, hogy teljes képernyős módban eltűntessem valahogy az egérkurzort?

/*
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB);
glutGameModeString("1024x768:16";
glutEnterGameMode();
*/

Köszi!

   
MaNiAc - Szerkesztő | 1735 hsz       Online status #20834   2006.07.04 11:17 GMT+1 óra  
Nekem már elmondta priviben mi kéne, de ahhoz nem jó az se.
Dare to imagine!
http://www.insaneidea.hu
   
beast - Törzstag | 1241 hsz       Online status #20833   2006.07.04 11:02 GMT+1 óra  
És ha elrejted az ablakot? (ShowWindow(SW_HIDE))

   
warlock - Törzstag | 704 hsz       Online status #20823   2006.07.04 09:28 GMT+1 óra  

   
MaNiAc - Szerkesztő | 1735 hsz       Online status #20822   2006.07.04 09:21 GMT+1 óra  
Bocsi, hogy MSN-en nem volt nagyon időm dumálni, mindig akkor villant fel az a hulye ablak, amikor idejott valaki, most meg mar masik gepnel vagyok... Mellesleg igazad volt, azt olvastam mindenhol, hogy fake dc-t lehet gyartani, de azt, ami kellett volna neked valahogy keruli a koztudat...

A vicces, hogy akaratlanul egy korabbi problemamra kaptam igy megoldast, ha igaz (lightmap compiler), ahelyett, hogy neked segitettem volna
Dare to imagine!
http://www.insaneidea.hu
   
Frissebbek | Korábbi postok
[1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [15] [20] [25] [30] [35] [40] [45] [50] [55] [60] [65] > 70 < [75] [80] [82]