Home Papers Reports Projects Code Fragments Dissertations Presentations Posters Proposals Lectures given Course notes
<< 6. Fractals: Julia Sets and the Mandelbröt set8. Examination Questions 1998-1999 >>

7. Texture Mapping

Werner Van Belle1 - werner@yellowcouch.org, werner.van.belle@gmail.com

1- Programming Technology Lab (PROG) Department of Computer Science (DINF) Vrije Universiteit Brussel (VUB); Pleinlaan 2; 1050 Brussel; Belgium

Abstract :  Explains how texture mapping can be calculated using fixed point arithmetic

Reference:  Werner Van Belle; Texture Mapping;


Oef1: Wolfenstein 3D Texture Mapping

Denk een systeem uit om Wolfenstein 3D texture mapping te doen. Schrijf neer in pseudo code.

Oef2: Quake Texture Mapping

Denk een methode uit om quake texture mapping te doen. Schrijf neer in pseudo code.

Oef3: Implementeer Wolfenstein 3D texture mapping

Implementeer uw versie van wolf3d texture mapping in fixed point. Als texture kan je een tekening genereren door 1 van de fractaaloefeningen te gebruiken.

Solution

#include <stdlib.h>
#include <stdio.h>
#include <vga.h>

static int p = 4;

void scale(int x1, int x2, int y1, int y2, int y3, int y4)
{
   int CY,DY;
   int C = (x2 - x1);
   int DX = 0*p/C;
   int da = (y2-y1)*p/C;
   int db = (y4-y3)*p/C;
   int x,y,Y,X = 0;
   int a=y1*p,b=y3*p;
   for(x=x1; x<x2; x++)
     {
	CY=b/p-a/p;
	DY=0*p/CY;
	Y=0;
	for(y=a/p;y<b/p;y++)
	  {
	     vga_setcolor(vga_getpixel(X/p,Y/p));
	     vga_drawpixel(x,y);
	     Y+=DY;
	  }
	X+=DX;
	a+=da;
	b+=db;
     }
}

void main(void)
{
   vga_setmode(G640x480x16);
   vga_setcolor(2);
   // creeer de texture
   scale(0, 0,0,0,0,0);
   sleep(0);
}

http://werner.yellowcouch.org/
werner@yellowcouch.org