how to draw a 3d house in opengl
In this article, we will take a await at project that is 1 of the most complete projects I have seen to start 3D programming from scratch. Nosotros will run into the projection overview, interesting objects and list the openGL topics covered by this project.
- Download source code - 1.ii MB
Introduction
Eight years ago, I was trying to enter the 3D programming globe. I was studying NEHE tutorials but due to its complexity, I quit similar three times. The tutorials were written in C++ and were sometimes very hard to understand. Then I came across this projection. I have to say this is one of the most complete projects I take seen to start 3D programming from scratch.
In the projection, yous will run into a house with everything inside. But the amazing function of it is that everything is done by code. That means that the projection doesn't load any 3D object. It just creates them at runtime. In that location is no 3D engine used then y'all get to see how virtually of the code looks that is used to make cameras, object interaction, collisions, among others. The programmers made all the objects just by combining simple OpenGL primitives.
Project Overview
The project linguistic communication is coded in C# using TAO namespace. TAO is a library that maps all OpenGL functions to .NET. In this way, y'all will exist using OpenGL from the .NET sandbox. The project is very modular. That ways that every object is nigh standalone. Each object actually contains all its own working logic then you won't get lost with besides many dependencies across the project. The primary class is principal.cs so yous tin showtime discovering the project from there.
This is a code example of the chief.cs. You can meet how objects are added to the scene during runtime.
public MainClass(string[] args) { GlControl ViewPort = new GlControl(Width,Height); GlObjectList world = new GlObjectList(); world.Add together(new LightSource()); #if !testingObjects world.Add together(new TranslatedObject(new Point3D(0,-10,0),new SkyBox())); GlObjectList casa = new GlObjectList(); casa.Add(new Casa2()); casa.Add(new Librero(new Point3D(210,0,-318),0)); casa.Add together(new Librero(new Point3D(210,Librero.Height+.3,-316),-iii)); casa.Add(new Lamp(new Point3D(60,270,190),lxx)); casa.Add together(new Refrigerador(new Point3D(-145,0,120),180)); Plantilla obj = new Mesita(new Point3D(80,0,40),90); casa.Add(obj); casa.Add(new Tv set(new Point3D(80,obj.Height+.2,threescore),0)); casa.Add(new Cama(new Point3D(370,0,-250),0,100,lxx)); casa.Add(new Cama(new Point3D(370,0,-480),0,100,60)); casa.Add(new Cama(new Point3D(-210,0,-420),0,90,40)); casa.Add(new Estante(new Point3D(-210,170,-108))); obj = new Mesa(new Point3D(380,0,200)); casa.Add(obj); casa.Add(new Silla(new Point3D(440,0,160))); casa.Add(new Silla(new Point3D(440,0,240))); casa.Add together(new Silla(new Point3D(330,0,160),180)); casa.Add(new Silla(new Point3D(330,0,240),180)); casa.Add(new Silla(new Point3D(385,0,110),90)); casa.Add(new Silla(new Point3D(385,0,290),-90)); casa.Add together(new Plato(new Point3D(380,obj.Height+.two,200))); casa.Add(new Vaso(new Point3D(380,obj.Height+.2,230))); casa.Add together(new MesitaDeNoche(new Point3D(455,0,-140),-90)); casa.Add(new MesitaDeNoche(new Point3D(455,0,-380),-xc)); casa.Add(new MesitaDeNoche(new Point3D(455,0,-580),-90)); casa.Add(new MesitaDeNoche(new Point3D(-280,0,-340),90)); obj = new EstanteHorizontal(new Point3D(330,0,-lxx),180); casa.Add(obj); casa.Add(new Butaca(new Point3D(-xxx,0,200),90,2)); casa.Add together(new Butaca(new Point3D(200,0,270),250,1)); casa.Add together(new Butaca(new Point3D(200,0,110),-70,i)); casa.Add together(new MesetaConFregadero(new Point3D(-307,0,-64),0)); casa.Add together(new Clock(new Point3D(485,200,325),270)); GlObject c = new TranslatedObject(new Point3D(0,0,-70),casa); world.Add(c);
0 Response to "how to draw a 3d house in opengl"
Post a Comment