Where to start

Started by
13 comments, last by ilnar 12 years, 6 months ago

Telling someone not to learn something because it is too hard is stupid. Nobody goes from nothing to pro in anything in the world in a day.


Exactly. And you don't need to be a pro in C++ and know every little detail in order to write a application. In fact, C++ is perfect for game engine writters. Everything else is perfect for your next generation browser and email software.
Sig: http://glhlib.sourceforge.net
an open source GLU replacement library. Much more modern than GLU.
float matrix[16], inverse_matrix[16];
glhLoadIdentityf2(matrix);
glhTranslatef2(matrix, 0.0, 0.0, 5.0);
glhRotateAboutXf2(matrix, angleInRadians);
glhScalef2(matrix, 1.0, 1.0, -1.0);
glhQuickInvertMatrixf2(matrix, inverse_matrix);
glUniformMatrix4fv(uniformLocation1, 1, FALSE, matrix);
glUniformMatrix4fv(uniformLocation2, 1, FALSE, inverse_matrix);
Advertisement

[quote name='dpadam450' timestamp='1318543904' post='4872328']
Telling someone not to learn something because it is too hard is stupid. Nobody goes from nothing to pro in anything in the world in a day.


Exactly. And you don't need to be a pro in C++ and know every little detail in order to write a application. In fact, C++ is perfect for game engine writters. Everything else is perfect for your next generation browser and email software.
[/quote]

Thank you very much good sir, now can we get back on track?

so what is the verdict? Pure OpenGL? SDL? What do you guys think?

im aimaing for the graphics to look something like the graphics in black/white.
If you are going to use GL, then I suggest starting out with a toolkit like SDL or freeGLUT or GLFW to hide the platform specific part of context creation and destruction. Then you can just concentrate on GL which is the same on all platforms.

http://www.opengl.org/wiki/Related_toolkits_and_APIs
Sig: http://glhlib.sourceforge.net
an open source GLU replacement library. Much more modern than GLU.
float matrix[16], inverse_matrix[16];
glhLoadIdentityf2(matrix);
glhTranslatef2(matrix, 0.0, 0.0, 5.0);
glhRotateAboutXf2(matrix, angleInRadians);
glhScalef2(matrix, 1.0, 1.0, -1.0);
glhQuickInvertMatrixf2(matrix, inverse_matrix);
glUniformMatrix4fv(uniformLocation1, 1, FALSE, matrix);
glUniformMatrix4fv(uniformLocation2, 1, FALSE, inverse_matrix);
So i have SDL and GLUT downloaded the book i bought is for glut. i downloaded glut and looked at the documentation and it makes no sense.
i have glut 3.7 and it says that i need glut32.lib glu32.lib opengl.lib and glut32.dll. instead it have me a bunch of c source files can somebody help me i downloaded glut from the same place the documentation is.
Opengl Superbible 4th edition . great book. comes with cd full with tutor files. its dissadvantige is that it doesnt covers 3d model importing or texture importing or shadow mapping.nor normal calculation or smooth shading methods. they have their own functions specially for that book and they use them, without explaining what heppens inside. i personally am stuck on shadows right now. cant get tutors at all :((( in other words it perfect for start but horrible for thous who already knows something. im kinda new in c++ too... try this:
http://www.swiftless.com/tutorials/opengl/gldrivers.html
install dll s into windows/ system 32. i keep glut32.dll in same folder as executable file. but if im not wrong you could install it in system32 aswell.
copy from zip's include into
C:\Program Files (x86)\Microsoft Visual Studio 8\VC\PlatformSDK\Include\gl
and lib files from zip into
C:\Program Files (x86)\Microsoft Visual Studio 8\VC\PlatformSDK\Lib



here is basic c++ opengl thing:


#include <iostream>
#include <stdlib.h>
#include <GL/gl.h> //here is gl.h you'v just installed
#include <GL/glut.h> //here is glut.h you'v just installed

using namespace std;




int k=0,d=0;
float camx=0.0,camy=0.0,camz=-10.0;
float camrotx=0.0,camroty=0.0,camrotz=0.0;
float camrotdeg = 0.0;
void RenderScene(void)
{

glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
glTranslatef(camx,camy,camz); //this guy translates the object into any place you like.

//here you could just say glTranslatef(10,2,7); or anything you like.
//however if you need to controll the translation by keys, you need to set float variables here. and controll
//numbers inside variable's . switch statement below does that. if a keyboard key a or s or w was clicked, switch statement
//grabs for example camx and adds 0.1 to it. if before clicking it was 2.0 , ufter clickeng 'a' it will be 2.1. translatef
// will get new coordinate and translate object onto it.



glRotatef(camrotdeg,camrotx,camroty,camrotz);
glPushMatrix();
glBegin(GL_QUADS); //your rectangle drawing starts here
glVertex3f( -0.5, 0.5,0.0);
glColor3f(1.0, 0.0, 255.0);
glVertex3f( 0.5, 0.5,0.0);
glColor3f(0.0, 255.0, 0.0);
glVertex3f( 0.5, -0.5,0.0);
glColor3f(120.0, 15.0, 0.0);
glVertex3f( -0.5, -0.5,0.0);


glColor3f(1.0f, 0.0f, 1.0f);
glVertex3f( 0.5f, -0.5f,0.0f);
glVertex3f( 0.5f, 0.5f,0.0f);
glVertex3f( 0.5f, 0.5f,0.5f);
glVertex3f( 0.5f, -0.5f,0.5f);

glEnd();


glPopMatrix();
glFlush();
}



void SetupRC(void)
{
glClearColor(0.0f, 0.0f, 0.5f, 1.0f);
glEnable(GL_COLOR_MATERIAL);
}

void camcontroll(unsigned char key, int x,int y) //camcontroll grabs keys that are pressed, then switch statement
//checks different cases.

{
switch (key) {

case'a': //in case if key 'a' was clicked, add 0.1 to camx.see glTranslatef above.
camx += 0.1;
glutPostRedisplay(); //without this, translation will happen but you wont see it on screen. it refreshes the screen
break; //its simple switch statement's guy. ufter every "case" ends, add "break".

case'd':
camx -= 0.1;
glutPostRedisplay();
break;
case'w':
camy -=0.1;
glutPostRedisplay();
break;
case's':
camy +=0.1;
glutPostRedisplay();
break;
case'q':
camz+=0.1;
glutPostRedisplay();
break;
case'e':
camz-=0.1;
glutPostRedisplay();
break;
case'f':
camroty=1.0;
camrotdeg-=1.1;
glutPostRedisplay();
break;
case'h':

camroty=1.0;
camrotdeg+=1.1;
glutPostRedisplay();
break;


default :
break;
}
}


int main(int argc, char* argv[]) //program starts here
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB | GLUT_DEPTH);
glutInitWindowSize(800, 600);
glutCreateWindow("GLRect");
glutDisplayFunc(RenderScene);
SetupRC();
glutKeyboardFunc(camcontroll); //keyboard input starts working here, see function camcontroll.
glutMainLoop();

return 0;
}

This topic is closed to new replies.

Advertisement