---
title: "Rum utan tak och golv (OpenGL)"
type: "forum-thread"
url: "https://www.webforum.nu/amne/c-cpp/58545-rum-utan-tak-och-golv-opengl"
topic: "C/C++"
topic_url: "https://www.webforum.nu/amne/c-cpp"
author: "Viktor"
published: "2002-11-09T22:49:31.000Z"
updated: "2002-11-10T19:26:15.000Z"
replies: 12
views: 338
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/c-cpp/58545-rum-utan-tak-och-golv-opengl"
---

# Rum utan tak och golv (OpenGL)

## #1 — Viktor, 2002-11-09T22:49Z

Jag precis börjat leka lite med OpenGL och använder mig av NeHe's tutorials. Nu har jag kommit till lektion 10 där man ska göra ett rum med tak, golv och väggar. När jag gör detta i Windows så fungerar det perfekt men när jag gör det för min Dreamcast med gcc och KOS (KGL) så försvinner taket och golvet när jag är inne i rummet, men om jag går ut och tittar på rummet utifrån så ser jag taket och golvet

Såhär ser rit koden ut.

```
int DrawGLScene(GLvoid)
{
	glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
	glLoadIdentity();

	GLfloat x_m, y_m, z_m, u_m, v_m;
	GLfloat xtrans = -xpos;
	GLfloat ztrans = -zpos;
	GLfloat ytrans = -walkbias-0.25f;
	GLfloat sceneroty = 360.0f - yrot;

	int numtriangles;

	glRotatef(lookupdown,1.0f,0,0);
	glRotatef(sceneroty,0,1.0f,0);
	
	glTranslatef(xtrans, ytrans, ztrans);
	
	numtriangles = sector1.numtriangles;
	glBindTexture(GL_TEXTURE_2D, texture[0]);
	for (int loop_m = 0; loop_m < numtriangles; loop_m++)
	{
		glBegin(GL_TRIANGLES);
			glNormal3f( 0.0f, 0.0f, 1.0f);
			x_m = sector1.triangle[loop_m].vertex[0].x;
			y_m = sector1.triangle[loop_m].vertex[0].y;
			z_m = sector1.triangle[loop_m].vertex[0].z;
			u_m = sector1.triangle[loop_m].vertex[0].u;
			v_m = sector1.triangle[loop_m].vertex[0].v;
			glTexCoord2f(u_m,v_m);
			glVertex3f(x_m,y_m,z_m);

			x_m = sector1.triangle[loop_m].vertex[1].x;
			y_m = sector1.triangle[loop_m].vertex[1].y;
			z_m = sector1.triangle[loop_m].vertex[1].z;
			u_m = sector1.triangle[loop_m].vertex[1].u;
			v_m = sector1.triangle[loop_m].vertex[1].v;
			glTexCoord2f(u_m,v_m);
			glVertex3f(x_m,y_m,z_m);

			x_m = sector1.triangle[loop_m].vertex[2].x;
			y_m = sector1.triangle[loop_m].vertex[2].y;
			z_m = sector1.triangle[loop_m].vertex[2].z;
			u_m = sector1.triangle[loop_m].vertex[2].u;
			v_m = sector1.triangle[loop_m].vertex[2].v;
			glTexCoord2f(u_m,v_m);
			glVertex3f(x_m,y_m,z_m);
		glEnd();
	}
	return(0);
}
```

och init kod

```
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluPerspective(45.0f,640.0f/480.0f,0.1f,100.0f);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();

glEnable(GL_TEXTURE_2D);
glShadeModel(GL_SMOOTH);
glClearColor(0.0f, 0.0f, 0.0f, 0.5f);
glClearDepth(1.0f);
glEnable(GL_DEPTH_TEST);
glDepthFunc(GL_LEQUAL);

glColor4f(1.0f, 1.0f, 1.0f, 0.5);
glBlendFunc(GL_SRC_ALPHA,GL_ONE);
```

(hela koden finns: <http://w1.877.telia.com/~u87727362/dc_lesson10.zip>)

Någon som har någon ide om varför tak och golv försvinner så fort jag går in i rummer??

/Viktor

Permalänk: https://www.webforum.nu/p/58545

## #2 — Phorpher, 2002-11-09T22:56Z

Låter som ett typiskt "normalproblem". Dvs. att golvet och takets normal pekar "utåt".

Permalänk: https://www.webforum.nu/p/851214

## #3 — Viktor, 2002-11-09T22:57Z

Va???
Kan du förklara lite närmare? Jag är helt ny med detta så jag förstår inte riktigt vad du menar. :) 

/Viktor

Permalänk: https://www.webforum.nu/p/851215

## #4 — Phorpher, 2002-11-09T23:16Z

En yta i 3D har en sk. normal som "pekar" vinkelrätt ut från ytan. Om denna normal pekar bort från dig så syns inte ytan. Se alltså till att normalen pekar mot kameran och inte bort från den.

Permalänk: https://www.webforum.nu/p/851226

## #5 — Alpha II, 2002-11-09T23:29Z

Han sätter ju aldrig någon normal!

Permalänk: https://www.webforum.nu/p/851231

## #6 — Phorpher, 2002-11-09T23:35Z

```
glNormal3f( 0.0f, 0.0f, 1.0f);
```

 

Där sätter han väl en normal?

Permalänk: https://www.webforum.nu/p/851233

## #7 — Viktor, 2002-11-09T23:36Z

ok, nu ser jag och förstår lite mer :)
Någon ide om vad jag ska sätta den till?

/Viktor

Permalänk: https://www.webforum.nu/p/851234

## #8 — Phorpher, 2002-11-09T23:43Z

Har inte en aning egentligen. Men jag skulle nog testa att sätta z-värdet för normalen till -1.0 istället...

```
glNormal3f( 0.0f, 0.0f, -1.0f);
```

 

Det skadar ju inte att testa? :)

Permalänk: https://www.webforum.nu/p/851238

## #9 — Viktor, 2002-11-09T23:46Z

Testat lite nu men det blev inte bättre, får testa mer senare när jag vet vad nomal är för något också och hur det används :)
Tack för hjälpen ändå.

/Viktor

Permalänk: https://www.webforum.nu/p/851240

## #10 — Alpha II, 2002-11-10T00:51Z

Ta bort glNormal\*\*()! Det är ändå inte nödvändigt om du inte använder ogl's lighting! som fö inte är bra!

Permalänk: https://www.webforum.nu/p/851264

## #11 — Viktor, 2002-11-10T10:36Z

Tittade lite i dokumentationen för min Dreamcast och där står det att glNormal3f inte är imlementerad ännu, därför fick jag ingen skilnad när jag testade lite igår :) 

/Viktor

Permalänk: https://www.webforum.nu/p/851383

## #12 — Alpha II, 2002-11-10T17:57Z

Hur programmerar du för dreamcast?

Permalänk: https://www.webforum.nu/p/851611

## #13 — Viktor, 2002-11-10T19:26Z

En special sladd mellan PC och Dreamcast för att ladda upp program (kan även bränna ner det på skivor men det blir lite jobbigt :)) och sedan
<http://www.hangar-eleven.de/en/devdc-index.html>
<http://cadcdev.sourceforge.net/>
Riktigt roligt faktiskt :)

/Viktor

Permalänk: https://www.webforum.nu/p/851677

---

Tråden på webben: https://www.webforum.nu/amne/c-cpp/58545-rum-utan-tak-och-golv-opengl
