Lesson 02 - Functional Specification

Started by
5 comments, last by DevLiquidKnight 17 years, 10 months ago
Seeing as we have got a lot of progress on lesson 01 so far. We are not done and still have to write the tutorial and add some coding standards etc. I thought it might be a good time to start writing the functional specifications for lesson 02. As you can see lc_overlord has already posted an idea of them at: https://opensvn.csie.org/traccgi/NeHeDev/wiki/Lesson02FunctionalSpecifications we will be changing this. So if you have any free time, lets begin. [smile]
Advertisement
For lesson 2, I don't think we need to talk about the state machine at all. The user doesn't need to know anything about the state machine to understand using GL immediate mode to render shapes. I think the state machine would be better introduced when there is a more direct tie to it. Such as a lesson on using Blend functions or Alpha functions.
So perhaps a non-goal could be to not talk about the state machine?
Ideally, I think we should get users drawing something quickly. Something to the effect of:
- go to the draw function
- enter the following code
- compile and enjoy

Once that basic workflow is out of the way (and the user feels they've accomplished something), it should be ok to go into detail about how things work. In general, I think we should make it policy to demonstrate something functioning before discussing detail; this way the context has already been presented, and we can discuss detail directly.
Quote:Original post by DevLiquidKnight
So perhaps a non-goal could be to not talk about the state machine?


No, we should definitly talk about it, though indirectly trough glColor.
I have allready done the coding (cut/paste from lesson 2 + some glColor3f() )
I am just waiting until lesson 1 is done so we can branch of lesson 2

	glTranslatef(-1.5f,0.0f,-6.0f);		glBegin(GL_TRIANGLES);						// Drawing Using Triangles		glColor3f( 1.0f, 0.0f, 0.0f);				// Red		glVertex3f( 0.0f, 1.0f, 0.0f);				// Top		glColor3f( 0.0f, 1.0f, 0.0f);				// green		glVertex3f(-1.0f,-1.0f, 0.0f);				// Bottom Left		glColor3f( 0.0f, 0.0f, 1.0f);				// blue		glVertex3f( 1.0f,-1.0f, 0.0f);				// Bottom Right	glEnd();		glTranslatef(3.0f,0.0f,0.0f);				glBegin(GL_QUADS);						// Draw A Quad		glColor3f( 0.0f, 1.0f, 1.0f);				// Cyan		glVertex3f(-1.0f, 1.0f, 0.0f);				// Top Left		glVertex3f( 1.0f, 1.0f, 0.0f);				// Top Right		glColor3f( 1.0f, 0.0f, 1.0f);				// Magenta		glVertex3f( 1.0f,-1.0f, 0.0f);				// Bottom Right		glVertex3f(-1.0f,-1.0f, 0.0f);				// Bottom Left	glEnd();	


Do you think we need more primitives(points and lines)?
I actually already tinkered with lesson 01s format and what we have planned for lesson 02 I am happy how easy it was to change.

I think one thing we need to discuss is the fact that we have a new layout for the lessons (in terms of OOP) should we perhaps describe it somewhere, maybe even a lesson before lesson 01? Or should we put it into the lesson one tutorial which I think might be confusing.
Yea, lesson 01 would be as good a place as any to do that.

This topic is closed to new replies.

Advertisement