Subversion Repositories komp-grafika

[/] [index_4.htm] - Rev 21

Compare with Previous | Blame | View Log

<html>

<head>
<title>4 pamoka</title>
<meta http-equiv=Content-Language content=lt>
<meta http-equiv=Content-Type content="text/html; charset=utf-8">
<link href="global.css" rel="stylesheet" type="text/css" />
<link href="print.css" rel="stylesheet" type="text/css" media="print" />
<style>
<!--//
a:link    {font-family:Verdana,Tahoma,Helvetica; font-weight:normal; color:#008000; text-decoration:none; }
a:active  {font-family:Verdana,Tahoma,Helvetica; font-weight:normal; color:#008000; text-decoration:none; }
a:visited {font-family:Verdana,Tahoma,Helvetica; font-weight:normal; color:#008000; text-decoration:none; }
a:hover   {font-family:Verdana,Tahoma,Helvetica; font-weight:normal; color:#ee0033; text-decoration:none; }
ul, li    {font-family:Verdana,Tahoma,Helvetica; font-weight:normal; text-align:justify; margin: 6px 2% 6px; }
p, body   {font-family:Verdana,Tahoma,Helvetica; font-weight:normal; }
//-->
</style>
</head>

<body>

<table border="0" cellSpacing="0" cellPadding="0" width="100%" id="table1">
    <tr>
        <td class="back3" vAlign="top" width="100%"><font class="text">Praeitoje konsultacijoje aÅ¡
                mokinau jus kaip trikampius ir keturračius papildyti spalva. Å ioje pamokoje
                aÅ¡ mokinsiu  jus kaip pasukti Å¡iuos spalvotus objektus apie sukimosi ašį.  <br>
        <br>
        Panaudoję kodą iÅ¡ praeitos pamokos, mes kai kur papildysime jį naujų. AÅ¡ perraÅ¡ysiu visą kodo dalį apačioje, kad jus lengvai galėtumėte pastebėti, kur jis buvo papildytas ir kur dar reikėtų kai ką pakeisti. <br>
        <br>
        Mes pradėsime nuo to, kad įvesime du kintamuosius ir tuo iÅ¡laikysime pasisukimo trasą kiekvienam objektui. Tai yra daroma virÅ¡utinėje dalyje mÅ«sų programos, žemiau kitų kintamųjų.
Jus pastebėsite dvi naujas eilutes po 'bool fullscreen=TRUE;'. Šiose eilutėse yra sukuriami du kintamieji su plaukiančiu tašku, kuriu dėka mes galime pasukti objektus su labai dideliu tikslumu. </font></td>
        <td class="r"><img alt="" src="vaizdai/blank.gif" width="28" height="28"></td>
    </tr>
</table>
<table border="0" cellSpacing="0" cellPadding="0" width="100%" id="table2">
    <tr>
        <td class="bl"><img alt="" src="vaizdai/blank.gif" width="28" height="28"></td>
        <td class="bc" width="100%">
        <img alt="" src="vaizdai/blank.gif" width="28" height="28"></td>
        <td class="br"><img alt="" src="vaizdai/blank.gif" width="28" height="28"></td>
    </tr>
</table>
<pre>#include   &lt;windows.h&gt;                   <font class="theme">//Windows failo antraste</font>
#include    &lt;gl\gl.h&gt;                 <font class="theme">//OpenGL32 bibbliotekos failo antraste</font>
#include    &lt;gl\glu.h&gt;                    <font class="theme">//GLu32 bibliotekos failo antraste</font>
#include    &lt;gl\glaux.h&gt;                  <font class="theme">//GLaux bibliotekos failo antraste</font>

HDC     hDC=NULL;                   <font class="theme">// Privatus GDI aplinkos irankiai</font>
HGLRC       hRC=NULL;                   <font class="theme">// Nuolatinis irankiu atvaizdavimas</font>
HWND        hWnd=NULL;                  <font class="theme">// turi sutvarkyti musu langa </font>
HINSTANCE   hInstance;                  <font class="theme">// Eina taikymo pavyzdys</font>

bool        keys[256];                  <font class="theme">// Naudojamas klaviaturos masyvo sablonas</font>
bool        active=TRUE;                    <font class="theme">// Window aktyvus zymeklis</font>

GLfloat     rtri;                       <font class="theme">// Trikampio kampas(naujas)</font>
GLfloat     rquad;                      <font class="theme">// Keturkampis     (naujas)</font>
</pre>
<table border="0" cellSpacing="0" cellPadding="0" width="100%" id="table3">
    <tr>
        <td class="tl"><img alt="" src="vaizdai/blank.gif" width="28" height="28"></td>
        <td class="tc" width="100%">
        <img alt="" src="vaizdai/blank.gif" width="100%" height="28"></td>
        <td class="tr"><img alt="" src="vaizdai/blank.gif" width="28" height="28"></td>
    </tr>
</table>
<table border="0" cellSpacing="0" cellPadding="0" width="100%" id="table4">
    <tr>
        <td class="l"><img alt="" src="vaizdai/blank.gif" width="28" height="28"></td>
        <td class="back3" vAlign="top" width="100%"><font class="text">Mes pradėsime nuo to, kad įvesime du kintamuosius ir tuo iÅ¡laikysime pasisukimo trasą kiekvienam objektui. Tai yra daroma virÅ¡utinėje dalyje mÅ«sų programos, žemiau kitų kintamųjų.
Jus pastebėsite dvi naujas eilutes po 'bool fullscreen=TRUE;'. Šiose eilutėse yra sukuriami du kintamieji su plaukiančiu tašku, kuriu dėka mes galime pasukti objektus su labai dideliu tikslumu. </font></td>
        <td class="r"><img alt="" src="vaizdai/blank.gif" width="28" height="28"></td>
    </tr>
</table>
<table border="0" cellSpacing="0" cellPadding="0" width="100%" id="table5">
    <tr>
        <td class="bl"><img alt="" src="vaizdai/blank.gif" width="28" height="28"></td>
        <td class="bc" width="100%">
        <img alt="" src="vaizdai/blank.gif" width="28" height="28"></td>
        <td class="br"><img alt="" src="vaizdai/blank.gif" width="28" height="28"></td>
    </tr>
</table>
<pre>int DrawGLScene(GLvoid)                        <font class="theme">// Stai cia mes darome visa, brezini</font>
{
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); <font class="theme">// Isvalome ekrana ir buferio gyli</font>
    glLoadIdentity();                   <font class="theme">// Anuliuoja vaizda</font>
    glTranslatef(-1.5f,0.0f,-6.0f);             <font class="theme">// Perkelia i ekrana kaireje</font>
</pre>
<table border="0" cellSpacing="0" cellPadding="0" width="100%" id="table6">
    <tr>
        <td class="tl"><img alt="" src="vaizdai/blank.gif" width="28" height="28"></td>
        <td class="tc" width="100%">
        <img alt="" src="vaizdai/blank.gif" width="100%" height="28"></td>
        <td class="tr"><img alt="" src="vaizdai/blank.gif" width="28" height="28"></td>
    </tr>
</table>
<table border="0" cellSpacing="0" cellPadding="0" width="100%" id="table7">
    <tr>
        <td class="l"><img alt="" src="vaizdai/blank.gif" width="28" height="28"></td>
        <td class="back3" vAlign="top" width="100%"><font class="text">Sekančios kodo eilutės visiÅ¡kai naujos. glRotatef(Angle,Xvector,Yvector,Zvector) atsakingi už objekto sukimasi aplink ašį. Jus gausite labai daug naudos naudojant Å¡itą komandą. Kampas – tai dažniausiai skaičius iÅ¡saugotas kintamajame, kuris atvaizduoja kiek jus norite pasukti objektą. Xvector, Yvector ir Zvector parametrai kartu atvaizduoja vektorių, aplink kurį ir vyksta tas sukimasis. Jeigu jus naudojate skaičius (1,0,0), tai reiÅ¡kia jus apraÅ¡ote vektrių, kuris juda iÅ¡ pirmo unito palei x ašį į deÅ¡iniąja puse. Skaičiai (-1,0,0) apraÅ¡o vektorių, kuris juda iÅ¡ pirmo unito palei x ašį į kairiąja puse. <br>
        <br>
        D. Michael Traub: has supplied the above explanation of the Xvector,
        Yvector and Zvector parameters. <br>
        <br>
        Kad geriau suprastumete X, Y ir Z rotacijas, aÅ¡ paaiÅ¡kinsiu naudojant pavizdžius...
        <br>
        <br>
        X aÅ¡is – posukis x aplink x ašį vykdomas taip pat kaip ir OpelGL aplinkoje. <br>
        <br>
        Y aÅ¡is – isivaizduokite, kad jus stovite vidury lauko. Didžiulis tornado ateina į jusu puse. Tornado centras juda iÅ¡ virÅ¡aus į apačią. Purvas ir nuolaužos sukasi aplink Y ašį ( tornado centrą) iÅ¡ kairės į deÅ¡inę. Kai jus sukate ka nors su OpenGL, tai realizuojama tokių pat budų. <br>
        <br>
        Z aÅ¡is – jus žiurite tiesiai į malÅ«ną. MalÅ«no centras rodo į jus ir nuo jusu. MalÅ«no sparnai sukasi aplink z ašį (malÅ«no centra) pagal laikrodžio rodyklę arba prie ją. Kai jus sukate ka nors su OpenGL, tai realizuojama tokių pat budų. <br>
        <br>
        Tai sekančioje kodo eilutėje , jeigu rtri bus tapatus 7, mes suksime 7 aplink Y ašį ( iÅ¡ kairės į deÅ¡inę). Jus galite paeksperimentuoti su kodu. Pakeiskite 0,0f‘s į 1,0f‘s ir 1,0f į 0,0f tam, kad vienu metu galėtumėte pasukti trikampį aplink X ir Y aÅ¡is. <br>
        <br>
        Labai svarbu prisiminti, kad posÅ«kiai matuojami laipsniais. Jeigu rtri turi 10 reikÅ¡mę, tai mes pasuksime objektą 10 laipsniu kampu. </font></td>
        <td class="r"><img alt="" src="vaizdai/blank.gif" width="28" height="28"></td>
    </tr>
</table>
<table border="0" cellSpacing="0" cellPadding="0" width="100%" id="table8">
    <tr>
        <td class="bl"><img alt="" src="vaizdai/blank.gif" width="28" height="28"></td>
        <td class="bc" width="100%">
        <img alt="" src="vaizdai/blank.gif" width="28" height="28"></td>
        <td class="br"><img alt="" src="vaizdai/blank.gif" width="28" height="28"></td>
    </tr>
</table>
<pre>   glRotatef(rtri,0.0f,1.0f,0.0f);             <font class="theme">// suka aplink asi( Naujas trikampis )</font>
</pre>
<table border="0" cellSpacing="0" cellPadding="0" width="100%" id="table9">
    <tr>
        <td class="tl"><img alt="" src="vaizdai/blank.gif" width="28" height="28"></td>
        <td class="tc" width="100%">
        <img alt="" src="vaizdai/blank.gif" width="100%" height="28"></td>
        <td class="tr"><img alt="" src="vaizdai/blank.gif" width="28" height="28"></td>
    </tr>
</table>
<table border="0" cellSpacing="0" cellPadding="0" width="100%" id="table10">
    <tr>
        <td class="l"><img alt="" src="vaizdai/blank.gif" width="28" height="28"></td>
        <td class="back3" vAlign="top" width="100%"><font class="text">
Šitas kodas nebuvo pakeistas. Jis atvaizduoja spalvotą lygų sumaišytą trikampį. Trikampis bus braižomas kairioje ekrano pusėje ir bus sukamas aplink Y ašį. </font>
        </td>
        <td class="r"><img alt="" src="vaizdai/blank.gif" width="28" height="28"></td>
    </tr>
</table>
<table border="0" cellSpacing="0" cellPadding="0" width="100%" id="table11">
    <tr>
        <td class="bl"><img alt="" src="vaizdai/blank.gif" width="28" height="28"></td>
        <td class="bc" width="100%">
        <img alt="" src="vaizdai/blank.gif" width="28" height="28"></td>
        <td class="br"><img alt="" src="vaizdai/blank.gif" width="28" height="28"></td>
    </tr>
</table>
<pre>   glBegin(GL_TRIANGLES);                  <font class="theme">// pradeda piesti trikampi</font>
        glColor3f(1.0f,0.0f,0.0f);          <font class="theme">// Nuspalvina tirkampio virsune raudonai</font>
        glVertex3f( 0.0f, 1.0f, 0.0f);          <font class="theme">// Nuspalvina trikampio pima taska</font>
        glColor3f(0.0f,1.0f,0.0f);          <font class="theme">// Nuspalvina trikampio kaire puse zaliai</font>
        glVertex3f(-1.0f,-1.0f, 0.0f);          <font class="theme">// Nuspalvina trikampio antra taska</font>
        glColor3f(0.0f,0.0f,1.0f);          <font class="theme">// Nuspalvina trikampio desine puse melynai</font>
        glVertex3f( 1.0f,-1.0f, 0.0f);          <font class="theme">// Nuspalvina trikampio trecia taska</font>
    glEnd();                        <font class="theme">// Baigia spalvinti trikampi</font>
</pre>
<table border="0" cellSpacing="0" cellPadding="0" width="100%" id="table12">
    <tr>
        <td class="tl"><img alt="" src="vaizdai/blank.gif" width="28" height="28"></td>
        <td class="tc" width="100%">
        <img alt="" src="vaizdai/blank.gif" width="100%" height="28"></td>
        <td class="tr"><img alt="" src="vaizdai/blank.gif" width="28" height="28"></td>
    </tr>
</table>
<table border="0" cellSpacing="0" cellPadding="0" width="100%" id="table13">
    <tr>
        <td class="l"><img alt="" src="vaizdai/blank.gif" width="28" height="28"></td>
        <td class="back3" vAlign="top" width="100%"><font class="text">kančios dvi eilutes yra naujos. Pagalvokite apie rtri ir r-ratį kaip apie konteinerį. Programos virÅ¡uje mes sukÅ«rėme konteinerius (GLfloat rtri, and GLfloat rquad). Sukurę konteinerius, mes nieko ten nepatalpinome. Pirma eilute apačioje ADDS 0.2 priklauso Å¡itam konteineriui. Tai kiekvieną kartą, kai mes tikriname rtri reikÅ¡mę konteineryje po Å¡ios kodo eilutes, ji pakyla iki 0.2. R- ratis konteineris mažėja iki 0.15. Kiekvieną kartą kai mes tikriname r – ratį konteinerį, jis mažėja iki 0.15. Mažėjimo atveju objektas sukasi į prieÅ¡ingą puse nei didėjimo atveju.
        <br>
        <br>
        Pabandykite pakeisti + į – ir pasižiÅ«rėkite kaip keisis posÅ«kio poslinkis. Pakeiskite reikÅ¡mes nuo 0.2 iki 1.0. <br>
        <br>
        Kuo didėsnis skaičius, to greičiau jis suksis. Mažesnis skaičius – lėčiau. </font></td>
        <td class="r"><img alt="" src="vaizdai/blank.gif" width="28" height="28"></td>
    </tr>
</table>
<table border="0" cellSpacing="0" cellPadding="0" width="100%" id="table14">
    <tr>
        <td class="bl"><img alt="" src="vaizdai/blank.gif" width="28" height="28"></td>
        <td class="bc" width="100%">
        <img alt="" src="vaizdai/blank.gif" width="28" height="28"></td>
        <td class="br"><img alt="" src="vaizdai/blank.gif" width="28" height="28"></td>
    </tr>
</table>
<pre>   glLoadIdentity();                   <font class="theme">// Anuliuoja dabartinio modulio vaizdo matrica</font>
    glTranslatef(1.5f,0.0f,-6.0f);              <font class="theme">// Perkelia i desine 1,5 vieneto ir i Ekrana 6,0</font>
    glRotatef(rquad,1.0f,0.0f,0.0f);            <font class="theme">// Suka aplink x asi(naujas keturkampis)</font>
</pre>
<table border="0" cellSpacing="0" cellPadding="0" width="100%" id="table15">
    <tr>
        <td class="tl"><img alt="" src="vaizdai/blank.gif" width="28" height="28"></td>
        <td class="tc" width="100%">
        <img alt="" src="vaizdai/blank.gif" width="100%" height="28"></td>
        <td class="tr"><img alt="" src="vaizdai/blank.gif" width="28" height="28"></td>
    </tr>
</table>
<table border="0" cellSpacing="0" cellPadding="0" width="100%" id="table16">
    <tr>
        <td class="l"><img alt="" src="vaizdai/blank.gif" width="28" height="28"></td>
        <td class="back3" vAlign="top" width="100%"><font class="text">This
        section of code remains the same. It draws a blue square made from one
        quad. It will draw the square on the right side of the screen in it's
        rotated position. </font></td>
        <td class="r"><img alt="" src="vaizdai/blank.gif" width="28" height="28"></td>
    </tr>
</table>
<table border="0" cellSpacing="0" cellPadding="0" width="100%" id="table17">
    <tr>
        <td class="bl"><img alt="" src="vaizdai/blank.gif" width="28" height="28"></td>
        <td class="bc" width="100%">
        <img alt="" src="vaizdai/blank.gif" width="28" height="28"></td>
        <td class="br"><img alt="" src="vaizdai/blank.gif" width="28" height="28"></td>
    </tr>
</table>
<pre>   glColor3f(0.5f,0.5f,1.0f);              <font class="theme">// Nustatome melyna spalva</font>
    glBegin(GL_QUADS);                  <font class="theme">// piesiame kvadrata</font>
        glVertex3f(-1.0f, 1.0f, 0.0f);          <font class="theme">// kvadrato virsutinis kairys kampas</font>
        glVertex3f( 1.0f, 1.0f, 0.0f);          <font class="theme">// kvadrato virsutinis desinys kampas</font>
        glVertex3f( 1.0f,-1.0f, 0.0f);          <font class="theme">// apatinis desinys</font>
        glVertex3f(-1.0f,-1.0f, 0.0f);          <font class="theme">// apatinis kairys</font>
    glEnd();                        <font class="theme">// baigia piesti kvadrata</font>
</pre>
<table border="0" cellSpacing="0" cellPadding="0" width="100%" id="table18">
    <tr>
        <td class="tl"><img alt="" src="vaizdai/blank.gif" width="28" height="28"></td>
        <td class="tc" width="100%">
        <img alt="" src="vaizdai/blank.gif" width="100%" height="28"></td>
        <td class="tr"><img alt="" src="vaizdai/blank.gif" width="28" height="28"></td>
    </tr>
</table>
<table border="0" cellSpacing="0" cellPadding="0" width="100%" id="table19">
    <tr>
        <td class="l"><img alt="" src="vaizdai/blank.gif" width="28" height="28"></td>
        <td class="back3" vAlign="top" width="100%"><font class="text">Sekančios dvi eilutes yra naujos. Pagalvokite apie rtri ir r-ratį kaip apie konteinerį. Programos virÅ¡uje mes sukÅ«rėme konteinerius (GLfloat rtri, and GLfloat rquad). Sukurę konteinerius, mes nieko ten nepatalpinome. Pirma eilute apačioje ADDS 0.2 priklauso Å¡itam konteineriui. Tai kiekvieną kartą, kai mes tikriname rtri reikÅ¡mę konteineryje po Å¡ios kodo eilutes, ji pakyla iki 0.2. R- ratis konteineris mažėja iki 0.15. Kiekvieną kartą kai mes tikriname r – ratį konteinerį, jis mažėja iki 0.15. Mažėjimo atveju objektas sukasi į prieÅ¡ingą puse nei didėjimo atveju. <br>
        <br>       
Pabandykite pakeisti + į – ir pasižiūrėkite kaip keisis posūkio poslinkis. Pakeiskite reikšmes nuo 0.2 iki 1.0.
Kuo didėsnis skaičius, to greičiau jis suksis. Mažesnis skaičius – lėčiau.
Pabandykite pakeisti + į – ir pasižiūrėkite kaip keisis posūkio poslinkis. Pakeiskite reikšmes nuo 0.2 iki 1.0.
Kuo didėsnis skaičius, to greičiau jis suksis. Mažesnis skaičius – lėčiau.</font></td>
        <td class="r"><img alt="" src="vaizdai/blank.gif" width="28" height="28"></td>
    </tr>
</table>
<table border="0" cellSpacing="0" cellPadding="0" width="100%" id="table20">
    <tr>
        <td class="bl"><img alt="" src="vaizdai/blank.gif" width="28" height="28"></td>
        <td class="bc" width="100%">
        <img alt="" src="vaizdai/blank.gif" width="28" height="28"></td>
        <td class="br"><img alt="" src="vaizdai/blank.gif" width="28" height="28"></td>
    </tr>
</table>
<pre>   rtri+=0.2f;                     <font class="theme">// didina kintamojo trikampio rotacija(naujas)</font>
    rquad-=0.15f;                       <font class="theme">// sumazina kintamojo kvadrato rotacija( naujas )</font>
    return TRUE;                        <font class="theme">// nesustabdo</font>
}
</pre>
<table border="0" cellSpacing="0" cellPadding="0" width="100%" id="table21">
    <tr>
        <td class="tl"><img alt="" src="vaizdai/blank.gif" width="28" height="28"></td>
        <td class="tc" width="100%">
        <img alt="" src="vaizdai/blank.gif" width="100%" height="28"></td>
        <td class="tr"><img alt="" src="vaizdai/blank.gif" width="28" height="28"></td>
    </tr>
</table>
<table border="0" cellSpacing="0" cellPadding="0" width="100%" id="table22">
    <tr>
        <td class="l"><img alt="" src="vaizdai/blank.gif" width="28" height="28"></td>
        <td class="back3" vAlign="top" width="100%"><font class="text">Finally
        change the code to toggle window / fullscreen mode so that the title at
        the top of the window is proper. </font></td>
        <td class="r"><img alt="" src="vaizdai/blank.gif" width="28" height="28"></td>
    </tr>
</table>
<table border="0" cellSpacing="0" cellPadding="0" width="100%" id="table23">
    <tr>
        <td class="bl"><img alt="" src="vaizdai/blank.gif" width="28" height="28"></td>
        <td class="bc" width="100%">
        <img alt="" src="vaizdai/blank.gif" width="28" height="28"></td>
        <td class="br"><img alt="" src="vaizdai/blank.gif" width="28" height="28"></td>
    </tr>
</table>
<pre>           if (keys[VK_F1])            <font class="theme">// ar F1 supresuotas?</font>
            {
                keys[VK_F1]=FALSE;      <font class="theme">// jei taip tai netiesa</font>
                KillGLWindow();         <font class="theme">// trina musu langa</font>
                fullscreen=!fullscreen;     <font class="theme">// perjungia i visa ekrana / langu rezimas</font>
                <font class="theme">// atkuria musu OpenGL langa ( modifikuoja )</font>
                if (!CreateGLWindow(&quot;NeHe's Rotation Tutorial&quot;,640,480,16,fullscreen))
                {
                    return 0;       <font class="theme">// uzdaro langa jei nebuvo sukurtas</font>
                }
            }
</pre>
<table border="0" cellSpacing="0" cellPadding="0" width="100%" id="table24">
    <tr>
        <td class="tl"><img alt="" src="vaizdai/blank.gif" width="28" height="28"></td>
        <td class="tc" width="100%">
        <img alt="" src="vaizdai/blank.gif" width="100%" height="28"></td>
        <td class="tr"><img alt="" src="vaizdai/blank.gif" width="28" height="28"></td>
    </tr>
</table>
<table border="0" cellSpacing="0" cellPadding="0" width="100%" id="table25">
    <tr>
        <td class="l"><img alt="" src="vaizdai/blank.gif" width="28" height="28"></td>
        <td class="back3" vAlign="top" width="100%"><font class="text">Å iuoje pamokoje aÅ¡ pasistengiau kuo aiÅ¡kiau paaiÅ¡kinti, kaip pasukti objektus aplink aÅ¡is. Pažaiskite su kodu, pabandykite pasukinėti skirtingus objektus aplink X, Y arba Z aÅ¡is, arba aplink visus vienu metu.  <br>
        <br>
        <b>Jeff Molofee</b> (<b>NeHe</b>) <br>
        <br>
        * DOWNLOAD
        <a href="http://nehe.gamedev.net/data/lessons/vc/lesson04.zip">Visual
        C++</a> Code For This Lesson. <br>
        <br>
        * DOWNLOAD
        <a href="http://nehe.gamedev.net/data/lessons/asm/lesson04.zip">ASM</a>
        Code For This Lesson. ( Conversion by Foolman )<br>
        * DOWNLOAD
        <a href="http://nehe.gamedev.net/data/lessons/bcb6/lesson04_bcb6.zip">
        Borland C++ Builder 6</a> Code For This Lesson. ( Conversion by
        Christian Kindahl )<br>
        * DOWNLOAD
        <a href="http://nehe.gamedev.net/data/lessons/beos/lesson04.zip">BeOS</a>
        Code For This Lesson. ( Conversion by Rene Manqueros )<br>
        * DOWNLOAD
        <a href="http://nehe.gamedev.net/data/lessons/c_sharp/lesson04.zip">C#</a>
        Code For This Lesson. ( Conversion by Sabine Felsinger )<br>
        * DOWNLOAD
        <a href="http://nehe.gamedev.net/data/lessons/csgl/lesson04.zip">VB.Net
        CsGL</a> Code For This Lesson. ( Conversion by X )<br>
        * DOWNLOAD
        <a href="http://nehe.gamedev.net/data/lessons/cwarrior/lesson04.zip">
        Code Warrior 5.3</a> Code For This Lesson. ( Conversion by Scott Lupton
        )<br>
        * DOWNLOAD
        <a href="http://nehe.gamedev.net/data/lessons/cygwin/lesson04.tar.gz">
        Cygwin</a> Code For This Lesson. ( Conversion by Stephan Ferraro )<br>
        * DOWNLOAD <a href="http://nehe.gamedev.net/data/lessons/d/lesson04.zip">
        D Language</a> Code For This Lesson. ( Conversion by Familia Pineda
        Garcia )<br>
        * DOWNLOAD
        <a href="http://nehe.gamedev.net/data/lessons/delphi/lesson04.zip">
        Delphi</a> Code For This Lesson. ( Conversion by Michal Tucek )<br>
        * DOWNLOAD
        <a href="http://nehe.gamedev.net/data/lessons/devc/lesson04.zip">Dev C++</a>
        Code For This Lesson. ( Conversion by Dan )<br>
        * DOWNLOAD
        <a href="http://nehe.gamedev.net/data/lessons/euphoria/lesson04.zip">
        Euphoria</a> Code For This Lesson. ( Conversion by Evan Marshall )<br>
        * DOWNLOAD
        <a href="http://nehe.gamedev.net/data/lessons/gameglut/lesson04.zip">
        Game GLUT</a> Code For This Lesson. ( Conversion by Milikas Anastasios )<br>
        * DOWNLOAD
        <a href="http://nehe.gamedev.net/data/lessons/genu/lesson04.zip">Genu</a>
        Code For This Lesson. ( Conversion by Louis-Charles Dumais )<br>
        * DOWNLOAD
        <a href="http://nehe.gamedev.net/data/lessons/glut/lesson04.zip">GLUT</a>
        Code For This Lesson. ( Conversion by Andy Restad )<br>
        * DOWNLOAD
        <a href="http://nehe.gamedev.net/data/lessons/irix/lesson04.zip">Irix</a>
        Code For This Lesson. ( Conversion by Lakmal Gunasekara )<br>
        * DOWNLOAD
        <a href="http://nehe.gamedev.net/data/lessons/java/lesson04.zip">Java</a>
        Code For This Lesson. ( Conversion by Jeff Kirby )<br>
        * DOWNLOAD
        <a href="http://nehe.gamedev.net/data/lessons/java_swt/lesson04.zip">
        Java/SWT</a> Code For This Lesson. ( Conversion by Victor Gonzalez )<br>
        * DOWNLOAD
        <a href="http://nehe.gamedev.net/data/lessons/jedisdl/lesson04.zip">
        Jedi-SDL</a> Code For This Lesson. ( Conversion by Dominique Louis )<br>
        * DOWNLOAD
        <a href="http://nehe.gamedev.net/data/lessons/jogl/lesson04.jar">JoGL</a>
        Code For This Lesson. ( Conversion by Kevin J. Duling )<br>
        * DOWNLOAD
        <a href="http://nehe.gamedev.net/data/lessons/lccwin32/lccwin32_lesson04.zip">
        LCC Win32</a> Code For This Lesson. ( Conversion by Robert Wishlaw )<br>
        * DOWNLOAD
        <a href="http://nehe.gamedev.net/data/lessons/linux/lesson04.tar.gz">
        Linux</a> Code For This Lesson. ( Conversion by Richard Campbell )<br>
        * DOWNLOAD
        <a href="http://nehe.gamedev.net/data/lessons/linuxglx/lesson04.tar.gz">
        Linux/GLX</a> Code For This Lesson. ( Conversion by Mihael Vrbanec )<br>
        * DOWNLOAD
        <a href="http://nehe.gamedev.net/data/lessons/linuxsdl/lesson04.tar.gz">
        Linux/SDL</a> Code For This Lesson. ( Conversion by Ti Leggett )<br>
        * DOWNLOAD
        <a href="http://nehe.gamedev.net/data/lessons/lwjgl/lesson04.jar">LWJGL</a>
        Code For This Lesson. ( Conversion by Mark Bernard )<br>
        * DOWNLOAD
        <a href="http://nehe.gamedev.net/data/lessons/mac/lesson04.sit">Mac OS</a>
        Code For This Lesson. ( Conversion by Anthony Parker )<br>
        * DOWNLOAD
        <a href="http://nehe.gamedev.net/data/lessons/macosxcocoa/lesson04.zip">
        Mac OS X/Cocoa</a> Code For This Lesson. ( Conversion by Bryan Blackburn
        )<br>
        * DOWNLOAD
        <a href="http://nehe.gamedev.net/data/lessons/masm/lesson04.zip">MASM</a>
        Code For This Lesson. ( Conversion by Nico (Scalp) )<br>
        * DOWNLOAD
        <a href="http://nehe.gamedev.net/data/lessons/pbasic/lesson04.zip">Power
        Basic</a> Code For This Lesson. ( Conversion by Angus Law )<br>
        * DOWNLOAD
        <a href="http://nehe.gamedev.net/data/lessons/pelles_c/lesson04.zip">
        Pelles C</a> Code For This Lesson. ( Conversion by Pelle Orinius )<br>
        * DOWNLOAD
        <a href="http://nehe.gamedev.net/data/lessons/perl/lesson04.zip">Perl</a>
        Code For This Lesson. ( Conversion by Cora Hussey )<br>
        * DOWNLOAD
        <a href="http://nehe.gamedev.net/data/lessons/python/lesson04.tar.gz">
        Python</a> Code For This Lesson. ( Conversion by John Ferguson )<br>
        * DOWNLOAD
        <a href="http://nehe.gamedev.net/data/lessons/realbasic/RBlesson04.zip">
        REALbasic</a> Code For This Lesson. ( Conversion by Thomas J. Cunningham
        )<br>
        * DOWNLOAD
        <a href="http://nehe.gamedev.net/data/lessons/ruby/lesson04.zip">Ruby</a>
        Code For This Lesson. ( Conversion by Manolo Padron Martinez )<br>
        * DOWNLOAD
        <a href="http://nehe.gamedev.net/data/lessons/scheme/lesson04.zip">
        Scheme</a> Code For This Lesson. ( Conversion by Jon DuBois )<br>
        * DOWNLOAD
        <a href="http://nehe.gamedev.net/data/lessons/solaris/lesson04.zip">
        Solaris</a> Code For This Lesson. ( Conversion by Lakmal Gunasekara )<br>
        * DOWNLOAD
        <a href="http://nehe.gamedev.net/data/lessons/vb/lesson04.zip">Visual
        Basic</a> Code For This Lesson. ( Conversion by Ross Dawson )<br>
        * DOWNLOAD
        <a href="http://nehe.gamedev.net/data/lessons/vfortran/lesson04.zip">
        Visual Fortran</a> Code For This Lesson. ( Conversion by Jean-Philippe
        Perois )<br>
        * DOWNLOAD
        <a href="http://nehe.gamedev.net/data/lessons/vs_net/lesson04.zip">
        Visual Studio .NET</a> Code For This Lesson. ( Conversion by Grant James
        )<br>
&nbsp;</font></td>
    </tr>
</table>

</body>

</html>
 

Compare with Previous | Blame | View Log