Subversion Repositories komp-grafika

[/] [index_2.htm] - Rev 21

Compare with Previous | Blame | View Log

<html>

<head>
<title>2 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">Pirmojoje pamokoje iÅ¡mokote sukurti OpenGL langą. Å ioje
        pamokoje iÅ¡mokysiu jus "pieÅ¡ti" trikampius ir keturkampius. Sukursime trikampį, naudodami GL_TRIANGLES ir keturkampį,
        naudodami GL_QUADS.
        <br>
        <br>
        Panaudodami kodą iÅ¡ pirmosios pamokos, pakeisime DrawGLScene() procedÅ«rą. AÅ¡ perraÅ¡ysiu visą žemiau esančią procedÅ«rą. Jei
        norite redaguoti paskutiniąją pamoką, galite pakeisti DrawGLScene() procedÅ«rą žemiau esančiu kodu, arba tiesiog pridėti eilutes,
        kurių nėra praeitoje pamokoje. </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>int DrawGLScene(GLvoid)                            <font class="theme">// Čia atliekame pieÅ¡imo procedÅ«rą</font>
{
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);     <font class="theme">// IÅ¡valome ekraną ir gylio buferį</font>
    glLoadIdentity();                       <font class="theme">// Vėl nustatome vaizdą</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">Kai iÅ¡kviečiate glLoadIdentity() jÅ«s grįžtate atgal į ekrano centrą,
        kur X aÅ¡is tęsiasi iÅ¡ kairės į deÅ¡inę, Y aÅ¡is - iÅ¡ virÅ¡aus į apačią, o Z aÅ¡is - link ekrano ir nuo jo. <br>
        <br>
        OpenGL ekrano centras yra 0.0f X ir Y aÅ¡yse. Ä® kairę nuo centro yra neigiami skaičiai. Ä® deÅ¡inę nuo centro - teigiami skaičiai.
        Kylant į ekrano viršų bus teigiami skaičiai, o leidžiantis žemyn - neigiami. Tolstant nuo žiÅ«rovo bus neigiami skaičiai,
        artėjant prie jo - teigiami skaičiai. <br>
        <br>
        glTranslatef(x, y, z) juda pagal X, Y and Z aÅ¡is, atitinkama tvarka.
        Žemiau esanti kodo eilutė pasislenka į kairę X aÅ¡imi per 1.5 vieneto. Ji visiÅ¡kai nejuda Y aÅ¡imi (0.0),
        ir pasislenka į ekrano pusę per 6.0 vienetus.
        Kitaip tariant, jÅ«s nė trupučio nepajudate nuo ekrano centro - jÅ«s pajudate iÅ¡ ekrano vietos, kurioje ką tik buvote. </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>   glTranslatef(-1.5f,0.0f,-6.0f);                 <font class="theme">// Pasislinkimas kairėn 1.5 vieneto ir į ekraną per 6.0 vienetus</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">Dabar, kai jau pajudėjome į kairiąją ekrano pusę ir nustatėme
        pakankamą vaizdo gilumą ekrano atžvilgiu (-6.0), jog galėtume matyti visą vaizdą, sukursime trikampį. glBegin(GL_TRIANGLES)
        reiÅ¡kia, kad norime pradėti pieÅ¡ti trikampį, o glEnd() informuoja OpenGL, kad trikampį kurti baigėme. Ä®prastai, jei norite pieÅ¡ti
        trikampį, naudokite GL_TRIANGLES. Daugelyje vaizdo plokščių trikampių pieÅ¡imas yra gana greitas. Norėdami keturkampės figÅ«ros, naudokite
        GL_QUADS ir jÅ«sų gyvenimas taps lengvesnis. Kiek esu girdėjęs, dauguma vaizdo plokščių bet kuriuo atveju objektus vaizduoja kaip
        trikampius. Galų gale, jei norite figÅ«ros su daugiau nei 4 kampais, naudokite GL_POLYGON. <br>
        <br>
        MÅ«sų paprastoje programoje pieÅ¡iame tik vieną trikampį. Jei norėtume nupieÅ¡ti antrą trikampį, galėtume įterpti kitas 3 kodo eilutes
        (3 taÅ¡kus) iÅ¡syk po pirmųjų trijų. Visos Å¡eÅ¡ios kodo eilutės bÅ«tų tarp glBegin(GL_TRIANGLES) ir glEnd(). Nėra jokio tikslo įterpinėti
        glBegin(GL_TRIANGLES) ir glEnd() tarp kiekvienos 3 taÅ¡kų grupės. Tai taip pat galioja ir keturkampiams. Jei žinote, kad pieÅ¡ite tik
        keturkampius, galite įterpti antrą keturių kodo eilučių grupę iÅ¡syk po pirmųjų keturių eilučių. Kita vertus, daugiakampis (GL_POLYGON)
        gali bÅ«ti sudarytas iÅ¡ bet kokio kiekio taÅ¡kų, taigi nėra skirtumo, kiek eilučių turėsite tarp glBegin(GL_POLYGON) and glEnd(). <br>
        <br>
        Pirmoji eilutė po glBegin nustato pirmąjį mÅ«sų daugiakampio taÅ¡ką. Pirmasis glVertex skaičius yra skirtas X aÅ¡iai, antrasis skirtas Y
        aÅ¡iai, o trečiasis skaičius - Z aÅ¡iai. Taigi pirmojoje eilutėje nejudame X aÅ¡imi. Pajudame Y aÅ¡imi per 1 vienetą, ir nejudame   Z aÅ¡imi.
        Tai duoda mums virÅ¡utinį trikampio taÅ¡ką. Antrasis glVertex juda į kairę X aÅ¡imi per 1 vienetą ir Y aÅ¡imi žemyn, taip pat per 1 vienetą.
        Tai duoda mums apatinį kairįjį trikampio taÅ¡ką. Trečiasis glVertex juda deÅ¡inėn bei žemyn per 1 vienetą. Tai duoda mums apatinį deÅ¡inįjį
        trikampio taÅ¡ką. glEnd() informuoja OpenGL, kad daugiau taÅ¡kų nebėra. Užpildytas trikampis parodytas. </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>   glBegin(GL_TRIANGLES);                      <font class="theme">// PieÅ¡imas naudojant trikampius</font>
        glVertex3f( 0.0f, 1.0f, 0.0f);              <font class="theme">// VirÅ¡utinis taÅ¡kas</font>
        glVertex3f(-1.0f,-1.0f, 0.0f);              <font class="theme">// Kairysis apatinis taÅ¡kas</font>
        glVertex3f( 1.0f,-1.0f, 0.0f);              <font class="theme">// DeÅ¡inysis apatinis taÅ¡kas</font>
    glEnd();                            <font class="theme">// Trikampis baigiamas pieÅ¡ti</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">Dabar, kai jau pavaizdavome trikampį kairėje ekrano pusėje, turime persikelti
        į deÅ¡inę ekrano pusę ir pavaizduoti keturkampį. Kad tai padarytume, vėl naudojame glTranslate. Šį kartą turime pajudėti į deÅ¡inę,
        todėl X privalo bÅ«ti teigiama reikÅ¡mė. Kad pasislinktume į cnetrą, turime pajudėti deÅ¡inėn per 1.5 vieneto, nes prieÅ¡ tai buvome pajudėję
        į kairę per 1.5 vieneto. Pasiekę centrą, turime dar pajudėti į deÅ¡inę nuo centro per 1.5 vieneto. Taigi iÅ¡ viso turime pajudėti į deÅ¡inę
        per 3 vienetus. </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>   glTranslatef(3.0f,0.0f,0.0f);                   <font class="theme">// Pasislenka deÅ¡inėn 3 vienetais</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">Dabar kursime kvadratą. Tai padarysime pasinaudoję GL_QUADS.
        Keturkampis iÅ¡ esmės yra keturių briaunų daugiakampis. Puikiai tinka pieÅ¡ti kvadratui. Kodas, reikalingas sukurti kvadratą,
        yra labai panaÅ¡us į kodą, kurį naudojome kurdami trikampį. Vienintelis skirtumas yra tai, kad naudojama GL_QUADS vietoje GL_TRIANGLES, o
        taip pat reikia papildomo glVertex3f ketvirtajam kvadrato kampui. Kvadratą pieÅ¡ime iÅ¡ virÅ¡utinio kairiojo kampo pagal laikrodžio
        rodyklę. PieÅ¡iant pagal laikrodžio rodyklę, kvadratas bus pavaizduotas iÅ¡ užpakalio. Tai reiÅ¡kia, kad mes kvadratą matome iÅ¡
        užpakalinės pusės. Objektai, pieÅ¡ti prieÅ¡ laikrodžio rodyklę, bus atsisukę į mus. Kol kas Å¡i savybė nėra svarbi, bet vėliau ji jums
        bus reikalinga žinoti. </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>   glBegin(GL_QUADS);                      <font class="theme">// PieÅ¡iame kvadratą</font>
        glVertex3f(-1.0f, 1.0f, 0.0f);              <font class="theme">// VirÅ¡utinis kairysis kampas</font>
        glVertex3f( 1.0f, 1.0f, 0.0f);              <font class="theme">// VirÅ¡utinis deÅ¡inysis kampas</font>
        glVertex3f( 1.0f,-1.0f, 0.0f);              <font class="theme">// Apatinis deÅ¡inysis kampas</font>
        glVertex3f(-1.0f,-1.0f, 0.0f);              <font class="theme">// Apatinis kairysis kampas</font>
    glEnd();                            <font class="theme">// Baigiame kvadrato pieÅ¡imą</font>
    return TRUE;                            <font class="theme"></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">Pabaigai pakeiskite kodą perjungimui tarp lango / pilno ekrano
        vaizdo, kad pavadinimas lango virÅ¡uje bÅ«tų teisingas. <br>
        <br>
        Taip pat įsitikinkite, kad pakeitėte pavadinimą Å¡ioje eilutėje <font class="theme"><b>//
        Create Our OpenGL Window</b> (iÅ¡syk virÅ¡ Å¡io kodo). PrieÅ¡ingu atveju</font> 'pilno ekrano' langas turės kitokį pavadinimą nei
        'paprastas langas'. </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>           if (keys[VK_F1])                <font class="theme">// Ar klaviÅ¡as F1 nuspaustas?</font>
            {
                keys[VK_F1]=FALSE;          <font class="theme">// Jei taip, raktas bus FALSE</font>
                KillGLWindow();             <font class="theme">// Uždarome mÅ«sų dabartinį langą</font>
                fullscreen=!fullscreen;         <font class="theme">// Perjungimas tarp pilno ekrano / papr. lango vaizdo</font>
                <font class="theme">// IÅ¡ naujo kuriame OpenGL langą ( Pakeistą )</font>
                if (!CreateGLWindow(&quot;Primoji daugiakampių pamoka&quot;,640,480,16,fullscreen))
                {
                    return 0;           <font class="theme">// IÅ¡einame iÅ¡ programos, jei langas nesukurtas</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">Markus
        Knauer priduria: Knygoje (&quot;OpenGL Programming Guide: The Official Guide
        to Learning OpenGL, Release 1&quot;, J. Neider, T. Davis, M. Woo,
        Addison-Wesley, 1993) sekančiame paragrafe paaiÅ¡kinta, ką reiÅ¡kia NeHe, kai minimas pasislinkimas per vienetus OpenGL aplinkoje: <br>
        <br>
        &quot;[Paminėjau] colius ir milimetrus - ar jie iÅ¡vis susiję su OpenGL? Atsakymas, trumpai tariant - ne. Projekcija ir kitos
        transformacijos neturi matavimo vienetų. Jei norite galvoti apie artimas ir tolimas plokÅ¡tumas, esančias už 1.0 ir 20.0 metrų, colių,
        kilometrų, ar lygų - tai jÅ«sų reikalas. Vienintelė taisyklė - turite naudoti pastovų matavimo vienetą.&quot; <br>
        <br>
        Å ioje pamokoje aÅ¡ bandžiau iÅ¡aiÅ¡kinti kiek galima daugiau dalykų, kiekvieną žingsnį pieÅ¡iant daugiakampius ir kvadratus su OpenGL. Jei
        turite pastabų ar klausimų, raÅ¡ykite e.paÅ¡tu. Jei manote, kad kuris nors mano komentaras netinkamas ar kad kodas kai kuriose vietose
        galėtų bÅ«ti geresnis, praneÅ¡kite man. Noriu parengti geriausias OpenGL pamokas, kokias tik galiu. Man bÅ«tų įdomu iÅ¡girsti jÅ«sų
        atsiliepimus. <br>
        <br>
        * PARSISIŲSKITE
        <a href="http://nehe.gamedev.net/data/lessons/vc/lesson02.zip">Visual
        C++</a> Kodą Å¡iai pamokai. <br>
        <br>
        * PARSISIŲSKITE
        <a href="http://nehe.gamedev.net/data/lessons/asm/lesson02.zip">ASM</a>
        Kodą Å¡iai pamokai. ( Pritaikė Foolman )<br>
        * PARSISIŲSKITE
        <a href="http://nehe.gamedev.net/data/lessons/bcb6/lesson02_bcb6.zip">
        Borland C++ Builder 6</a> Pritaikė. ( Conversion by
        Christian Kindahl )<br>
        * PARSISIŲSKITE
        <a href="http://nehe.gamedev.net/data/lessons/beos/lesson02.zip">BeOS</a>
        Kodą Å¡iai pamokai. ( Pritaikė Rene Manqueros )<br>
        * PARSISIŲSKITE
        <a href="http://nehe.gamedev.net/data/lessons/c_sharp/lesson02.zip">C#</a>
        Kodą Å¡iai pamokai. ( Pritaikė Joachim Rohde )<br>
        * PARSISIŲSKITE
        <a href="http://nehe.gamedev.net/data/lessons/csgl/lesson02.zip">VB.Net
        CsGL</a> Kodą Å¡iai pamokai. ( Pritaikė X )<br>
        * PARSISIŲSKITE
        <a href="http://nehe.gamedev.net/data/lessons/cwarrior/lesson02.zip">
        Code Warrior 5.3</a> Kodą Å¡iai pamokai. ( Pritaikė Scott Lupton
        )<br>
        * PARSISIŲSKITE
        <a href="http://nehe.gamedev.net/data/lessons/cygwin/lesson02.tar.gz">
        Cygwin</a> Kodą Å¡iai pamokai. ( Pritaikė Stephan Ferraro )<br>
        * PARSISIŲSKITE <a href="http://nehe.gamedev.net/data/lessons/d/lesson02.zip">
        D Language</a> Kodą Å¡iai pamokai. ( Pritaikė Familia Pineda
        Garcia )<br>
        * PARSISIŲSKITE
        <a href="http://nehe.gamedev.net/data/lessons/delphi/lesson02.zip">
        Delphi</a> Kodą Å¡iai pamokai. ( Pritaikė Michal Tucek )<br>
        * PARSISIŲSKITE
        <a href="http://nehe.gamedev.net/data/lessons/devc/lesson02.zip">Dev C++</a>
        Kodą Å¡iai pamokai. ( Pritaikė Dan )<br>
        * PARSISIŲSKITE
        <a href="http://nehe.gamedev.net/data/lessons/gameglut/lesson02.zip">
        Game GLUT</a> Kodą Å¡iai pamokai. ( Pritaikė Milikas Anastasios )<br>
        * PARSISIŲSKITE
        <a href="http://nehe.gamedev.net/data/lessons/glut/lesson02.zip">GLUT</a>
        Kodą Å¡iai pamokai. ( Pritaikė Andy Restad )<br>
        * PARSISIŲSKITE
        <a href="http://nehe.gamedev.net/data/lessons/irix/lesson02.zip">Irix</a>
        Kodą Å¡iai pamokai. ( Pritaikė Lakmal Gunasekara )<br>
        * PARSISIŲSKITE
        <a href="http://nehe.gamedev.net/data/lessons/java/lesson02.zip">Java</a>
        Kodą Å¡iai pamokai. ( Pritaikė Jeff Kirby )<br>
        * PARSISIŲSKITE
        <a href="http://nehe.gamedev.net/data/lessons/java_swt/lesson02.zip">
        Java/SWT</a> Kodą Å¡iai pamokai. ( Pritaikė Victor Gonzalez )<br>
        * PARSISIŲSKITE
        <a href="http://nehe.gamedev.net/data/lessons/jedisdl/lesson02.zip">
        Jedi-SDL</a> Kodą Å¡iai pamokai. ( Pritaikė Dominique Louis )<br>
        * PARSISIŲSKITE
        <a href="http://nehe.gamedev.net/data/lessons/jogl/lesson02.jar">JoGL</a>
        Kodą Å¡iai pamokai. ( Pritaikė Kevin J. Duling )<br>
        * PARSISIŲSKITE
        <a href="http://nehe.gamedev.net/data/lessons/lccwin32/lccwin32_lesson02.zip">
        LCC Win32</a> Kodą Å¡iai pamokai. ( Pritaikė Robert Wishlaw )<br>
        * PARSISIŲSKITE
        <a href="http://nehe.gamedev.net/data/lessons/linux/lesson02.tar.gz">
        Linux</a> Kodą Å¡iai pamokai. ( Pritaikė Richard Campbell )<br>
        * PARSISIŲSKITE
        <a href="http://nehe.gamedev.net/data/lessons/linuxglx/lesson02.tar.gz">
        Linux/GLX</a> Kodą Å¡iai pamokai. ( Pritaikė Mihael Vrbanec )<br>
        * PARSISIŲSKITE
        <a href="http://nehe.gamedev.net/data/lessons/linuxsdl/lesson02.tar.gz">
        Linux/SDL</a> Kodą Å¡iai pamokai. ( Pritaikė Ti Leggett )<br>
        * PARSISIŲSKITE
        <a href="http://nehe.gamedev.net/data/lessons/lwjgl/lesson02.jar">LWJGL</a>
        Kodą Å¡iai pamokai. ( Pritaikė Mark Bernard )<br>
        * PARSISIŲSKITE
        <a href="http://nehe.gamedev.net/data/lessons/mac/lesson02.sit">Mac OS</a>
        Kodą Å¡iai pamokai. ( Pritaikė Anthony Parker )<br>
        * PARSISIŲSKITE
        <a href="http://nehe.gamedev.net/data/lessons/macosxcocoa/lesson02.zip">
        Mac OS X/Cocoa</a> Kodą Å¡iai pamokai. ( Pritaikė Bryan Blackburn
        )<br>
        * PARSISIŲSKITE
        <a href="http://nehe.gamedev.net/data/lessons/masm/lesson02.zip">MASM</a>
        Kodą Å¡iai pamokai. ( Pritaikė Nico (Scalp) )<br>
        * PARSISIŲSKITE
        <a href="http://nehe.gamedev.net/data/lessons/pbasic/lesson02.zip">Power
        Basic</a> Kodą Å¡iai pamokai. ( Pritaikė Angus Law )<br>
        * PARSISIŲSKITE
        <a href="http://nehe.gamedev.net/data/lessons/pelles_c/lesson02.zip">
        Pelles C</a> Kodą Å¡iai pamokai. ( Pritaikė Pelle Orinius )<br>
        * PARSISIŲSKITE
        <a href="http://nehe.gamedev.net/data/lessons/perl/lesson02.zip">Perl</a>
        Kodą Å¡iai pamokai. ( Pritaikė Cora Hussey )<br>
        * PARSISIŲSKITE
        <a href="http://nehe.gamedev.net/data/lessons/python/lesson02.tar.gz">
        Python</a> Kodą Å¡iai pamokai. ( Pritaikė Travis Wells )<br>
        * PARSISIŲSKITE
        <a href="http://nehe.gamedev.net/data/lessons/qt_cpp/lesson02.tar.gz">
        QT/C++</a> Kodą Å¡iai pamokai. ( Pritaikė Popeanga Marian )<br>
        * PARSISIŲSKITE
        <a href="http://nehe.gamedev.net/data/lessons/realbasic/RBlesson02.zip">
        REALbasic</a> Kodą Å¡iai pamokai. ( Pritaikė Thomas J. Cunningham
        )<br>
        * PARSISIŲSKITE
        <a href="http://nehe.gamedev.net/data/lessons/ruby/lesson02.zip">Ruby</a>
        Kodą Å¡iai pamokai. ( Pritaikė Ben Goodspeed )<br>
        * PARSISIŲSKITE
        <a href="http://nehe.gamedev.net/data/lessons/scheme/lesson02.zip">
        Scheme</a> Kodą Å¡iai pamokai. ( Pritaikė Jon DuBois )<br>
        * PARSISIŲSKITE
        <a href="http://nehe.gamedev.net/data/lessons/solaris/lesson02.zip">
        Solaris</a> Kodą Å¡iai pamokai. ( Pritaikė Lakmal Gunasekara )<br>
        * PARSISIŲSKITE
        <a href="http://nehe.gamedev.net/data/lessons/vb/lesson02.zip">Visual
        Basic</a> Kodą Å¡iai pamokai. ( Pritaikė Ross Dawson )<br>
        * PARSISIŲSKITE
        <a href="http://nehe.gamedev.net/data/lessons/vfortran/lesson02.zip">
        Visual Fortran</a> Kodą Å¡iai pamokai. ( Pritaikė Jean-Philippe
        Perois )<br>
        * PARSISIŲSKITE
        <a href="http://nehe.gamedev.net/data/lessons/vs_net/lesson02.zip">
        Visual Studio .NET</a> Kodą Å¡iai pamokai. ( Pritaikė Grant James
        )<br>
&nbsp;</font></td>
    </tr>
</table>

</body>

</html>
 

Compare with Previous | Blame | View Log