Archief - [PROG]texture map Texture mapping

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.

KULeest

Legacy Member
Hallo, voor een projectje zou ik zelf texture mapping moeten implementeren en dit met behulp van Java. Ik heb al wat rondgekeken op het net maar daar vind ik percies enkel wat info over hoe je dit kan doen me bestaande bibliotheken. Iemand meer info? Het is dus de bedoeling om zelf texture mapping te implementeren zonder gebruik te maken van OpenGL ofzo.

NecroNeo

Legacy Member
ik ben gene expert op dees gebied en op gebied van java ben ik echt 'n noob.

Ma ik denk dat je toch wat meer informatie over het object wat je wil mappen en over de methode die je gebruikt om alles op het scherm te krijgen. Als je raytracing of raycasting gebruikt kan ik d'r mss nog iets nuttig over vertellen ;)

KULeest

Legacy Member
Het gaat over een rasterizer die gemaakt is in java. De objecten zijn opgeslagen in een soort .obj formaat. Licht / camera / bsp-tree is al in orde, ik zoek enkel wat deftige uitleg om texture mapping aan toe te voegen met behulp van java. Ik heb percies iets gezien van pixelgrabber. Iemand enig idee hoe ik dit concreet kan gebruiken? Eigelijk zoek ik een manier om in java, gegeven de coordinaten, de RGB waarde uit een afbeelding te halen.

Reck

Legacy Member
voor een texture in te laden:

Code:
$pixels = new int[width * height];
$img = Toolkit.getDefaultToolkit().getImage(path_naar_texture);
PixelGrabber $pGrab = new PixelGrabber($img, 0, 0, width, height, $pixels, 0, width);
		
try{$pGrab.grabPixels();}
catch(InterruptedException ie){}

om de kleur van een pixel op te vragen:

Code:
public Color getPixel(double u, double v)
	{
		v = 1.0 - v;
		u = Math.abs(u - Math.floor(u));
		v = Math.abs(v - Math.floor(v));
			
		int x = (int)(u * $w);
		int y = (int)(v * $h);
		int index = x + (y * $w);
		int pixel = $pixels[index];
						
		$color.$r = ((pixel >> 16) & 0xff) / 255.0f;
		$color.$g = ((pixel >> 8) & 0xff) / 255.0f;
		$color.$b = (pixel & 0xff) / 255.0f;
		
		return $color;
	}

Color is een klasse die 3 vars heeft: float $r, float $g en float $b

KULeest

Legacy Member
Reck zei:
voor een texture in te laden:

Code:
$pixels = new int[width * height];
$img = Toolkit.getDefaultToolkit().getImage(path_naar_texture);
PixelGrabber $pGrab = new PixelGrabber($img, 0, 0, width, height, $pixels, 0, width);
		
try{$pGrab.grabPixels();}
catch(InterruptedException ie){}

om de kleur van een pixel op te vragen:

Code:
public Color getPixel(double u, double v)
	{
		v = 1.0 - v;
		u = Math.abs(u - Math.floor(u));
		v = Math.abs(v - Math.floor(v));
			
		int x = (int)(u * $w);
		int y = (int)(v * $h);
		int index = x + (y * $w);
		int pixel = $pixels[index];
						
		$color.$r = ((pixel >> 16) & 0xff) / 255.0f;
		$color.$g = ((pixel >> 8) & 0xff) / 255.0f;
		$color.$b = (pixel & 0xff) / 255.0f;
		
		return $color;
	}

Color is een klasse die 3 vars heeft: float $r, float $g en float $b

Hartelijk bedankt, kga morgen is verder porbere :p die color klasse me die floats had ik idd ook nodig :niceone:
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