Archief - [PROG][OpenGL&SDL] Probleem met clipping

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

ddt15

Legacy Member
Ik heb dus een programmatje waarin je de camera kan bewegen met de pijltoetsen. Elke keer dat je echter lager dan 45° op de y-as draait (m.a.w. wanner de bovenste tiles voor meer dan de helft buiten het scherm liggen) wordt er echter altijd een stuk van de 'vloer' gesneden, boven en onderaan het scherm. Het wordt er afgesneden maar ik weet niet hoe het komt. Prutsen met het viewpoint en de frustum helpen ook blijkbaar niets. Hulp is dus welkom.

Hier is de code: klik

Vich

Legacy Member
ddt15 zei:
Ik heb dus een programmatje waarin je de camera kan bewegen met de pijltoetsen. Elke keer dat je echter lager dan 45° op de y-as draait (m.a.w. wanner de bovenste tiles voor meer dan de helft buiten het scherm liggen) wordt er echter altijd een stuk van de 'vloer' gesneden, boven en onderaan het scherm. Het wordt er afgesneden maar ik weet niet hoe het komt. Prutsen met het viewpoint en de frustum helpen ook blijkbaar niets. Hulp is dus welkom.

Hier is de code: klik

Post eens een screenshot van hoe het er goed uitziet en hoe het fout gaat?

ddt15

Legacy Member
Uitleg met screenshots:

We beginnen vanuit dit zicht 1. Er is niet veel gebeurt, alleen maar wat quads getekend (de tegels).
zicht1

We roteren een beetje rond de y-as zodat we daar onder de 45° zitten. Zolang alles binnen het scherm blijft is alles nog normaal.
zicht2

Als we nu echter inzoomen dan worden er stukken weggeknipt. Dit gebeurt echter alleen als de hoek van de y-as onder de 45 gaat en het niet helemaal op het scherm kan.
zicht3

killgore

Legacy Member
gokje: glFrustum of glOrtho (uw projectie transformatie dus) staat niet goed genoeg ingesteld :). (of zijn corresponderende glu functie).

Ziet er mij eerder een projectiefout uit dus ;) (gisteren zelf projectiematrices mogen schrijve vo exame meetkunde, das pas pijnlijk :p).

ddt15

Legacy Member
Dat dacht ik ook, maar de waardes van glFrustum aanpassen heeft niets opgelevert.

Code:
glFrustum(-1.0, 1.0, 1.0, 1.0, 1.0, 100);

killgore

Legacy Member
ddt15 zei:
Dat dacht ik ook, maar de waardes van glFrustum aanpassen heeft niets opgelevert.

Code:
glFrustum(-1.0, 1.0, 1.0, 1.0, 1.0, 100);
wel, kgebruik sinds 2 dagen VS C++ 2005 op men desktop ook (vroeger enkel laptop, ma deed ek bijna geen gfx-ontwikkeling op) en SDL wilt niet werken, dus kan u atm niet helpen :).

En ook bij Dev-c++ gaat er iets loos, ik include alle libs en nog zegt em dat em bepaalde referenties niet kan vinden ...

ddt15

Legacy Member
De code die ik gepost had werkt in dev-c++ met deze linker opties:

project opties->param->linker:
-lmingw32
-lSDLmain
-lSDL
-lopengl32
-lglu32

killgore

Legacy Member
atm:
-lopengl32
-lSDL
-lSDLmain
-lglu32
-lglaux
-lmingw32

edit: enkel nog probleem dat em nu "undefined reference to WinMain" geeft, ma das wel op te lossen

ksnap wel nie hoe ek et heb opgelost :s.

ddt15

Legacy Member
^ Even ander vraagje: ik dacht dat de volgorde van linking ook belangrijk was of niet?

Ah trouwens je moet in dezelfde map een afbeelding tile.bmp zetten (texture voor de tegels) met grootte 64x64 of 32x32 enz.

killgore

Legacy Member
ik word echt zot e laatste tijd. win psdk die zomaar verdwijnt van men pc en nu SDL da nergens wilt werken, nu krijg ek weer volgende fouten :@

[Linker error] undefined reference to `SDL_GetError'
[Linker error] undefined reference to `SDL_SetModuleHandle'

zodra et is opgelost willek u probere helpe ze ;).

edit: domme fout, ik dacht dat lSDL voor lSDLmain moest komen :(

edit: code gauw gauw bekeken: is da nie normaal? Ge spreid uw texture zo opt eerste zicht nie over gans uw vlak uit, dus gade in uw beeld gewoon een vierkant draaien :), en natuurlijk gaje dan wel eens buiten de randen vallen :).

ddt15

Legacy Member
Nogal dom: Ik gebruikte glScalef() ipv glTranslatef() om in en uit te zoomen.

Het maakt eigelijk niet veel uit want ik ga SDL inwisselen voor Irrlicht denk ik aangezien het al een hele truuk was om een geanimeerd milkshapeascii model in men applicatie te krijgen en ik geen goesting heb om collission detection, object selection, enz allemaal zelf te maken.
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan