آشنايي با opengl
DESCRIPTION
آشنايي با OpenGL. برنامه نويسي سه بعدي با استفاده از OpenGL دلفي. زهرا علیدوست. چکیده. مقدمه انواع کتابخانه های برنامه نویسی سه بعدی. OpenGL چيست ؟ OpenGL چگونه کار میکند ؟ كتابخانه هاي كمكي در OpenGL . انواع داده ها در OpenGl . ساختار توابع استفاده شده در OpenGl . - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: آشنايي با OpenGL](https://reader035.vdocuments.net/reader035/viewer/2022062217/568132b4550346895d99700d/html5/thumbnails/1.jpg)
با آشناييOpenGL
بعدي سه نويسي با برنامهاز دلفي OpenGLاستفاده
علیدوست زهرا
![Page 2: آشنايي با OpenGL](https://reader035.vdocuments.net/reader035/viewer/2022062217/568132b4550346895d99700d/html5/thumbnails/2.jpg)
چکیده
مقدمه. بعدی سه نویسی برنامه های کتابخانه انواع OpenGL چيست ؟OpenGL میکند کار ؟چگونه كتابخانه هاي كمكي درOpenGL. انواع داده ها درOpenGl. ساختار توابع استفاده شده درOpenGl. در .OpenGL خطاها ساختار برنامه درOpenGl.
![Page 3: آشنايي با OpenGL](https://reader035.vdocuments.net/reader035/viewer/2022062217/568132b4550346895d99700d/html5/thumbnails/3.jpg)
opengl ساخت براي باال كيفيت با استاندارديبعد سه هاي مثال . ی برنامه براي باشد مي صنعتي
معروف رياضي هاي برنامه اكثر، Mathematicaمانند Matlab هاي و برنامه
مانن ، Working model 3dد صنعتي ANSYS وكه قوي تكنولوژي اين از اينها هاي امثال ويرايش
، دارد گوناگوني هاي عامل سيستم تحت نيز ديگريكنند مي .استفاده
مقدمه
![Page 4: آشنايي با OpenGL](https://reader035.vdocuments.net/reader035/viewer/2022062217/568132b4550346895d99700d/html5/thumbnails/4.jpg)
نويسي برنامه استاندارد كتابخانه نوع 3D دو:Win32تحت دارد وجود
1- Direct-3D Immediate Mode2- OpenGL
برنامه های كتابخانه استاندارد3D نويسي
![Page 5: آشنايي با OpenGL](https://reader035.vdocuments.net/reader035/viewer/2022062217/568132b4550346895d99700d/html5/thumbnails/5.jpg)
Open GLچر؟ا
![Page 6: آشنايي با OpenGL](https://reader035.vdocuments.net/reader035/viewer/2022062217/568132b4550346895d99700d/html5/thumbnails/6.jpg)
از استفاده سادگي و موجود API طراحيOpen GLدر
خوانا و ساده کد تولید زیاد زمان ندادن اختصاصD3D نويسان برنامه به را زيادي سختي
كند مي تحميل كد از خط يك تنها موارد از بسياري GL در
كد صفحه نيم يك باشد . D3Dمعادل مي
Direct-xوِ Open GLمقایسه
![Page 7: آشنايي با OpenGL](https://reader035.vdocuments.net/reader035/viewer/2022062217/568132b4550346895d99700d/html5/thumbnails/7.jpg)
GL به يك فراخواني با و دارد سروكار توابع بايافت دست نهايي نتيجه به توان مي توابع . يك
glBegin (GL_TRIANGLES);glVertex (0,0,0);glVertex (1,1,0);glVertex (2,0,0);glEnd ();
Direct-xوِ Open GLمقایسه
![Page 8: آشنايي با OpenGL](https://reader035.vdocuments.net/reader035/viewer/2022062217/568132b4550346895d99700d/html5/thumbnails/8.jpg)
: D3D در معادل كد(psuedo code, and incomplete)v = &buffer.vertexes[0];v->x = 0; v->y = 0; v->z = 0;v++;v->x = 1; v->y = 1; v->z = 0;v++;v->x = 2; v->y = 0; v->z = 0;c = &buffer.commands;c->operation = DRAW_TRIANGLE;c->vertexes[0] = 0;c->vertexes[1] = 1;c->vertexes[2] = 2;IssueExecuteBuffer (buffer);
Direct-xوِ Open GLمقایسه
![Page 9: آشنايي با OpenGL](https://reader035.vdocuments.net/reader035/viewer/2022062217/568132b4550346895d99700d/html5/thumbnails/9.jpg)
OpenGL " افزاری نرم رابط یک عنوان به دقیقا " است شده تعریف گرافیکی افزار سخت . برای
OpenGL مدل کتابخانه یک خود ماهیت دربسیار که میباشد بعدی سه گرافیک و سازی
. از استفاده با است انتقال قابل و سریعOpenGL و زیبا بعدی سه تصاویر میتوانید شما
. از استفاده فایده بزرگترین کنید طراحی جذابیOpenGL ردیاب یک از العاده فوق که اینست
است ) ray tracer (نور .سریعتر
؟ OpenGLچيست
![Page 10: آشنايي با OpenGL](https://reader035.vdocuments.net/reader035/viewer/2022062217/568132b4550346895d99700d/html5/thumbnails/10.jpg)
OpenGL هدف دو به رسیدن برایشد ارائه
با ارتباط های پیچیدگی کردن مخیی ارائه ی بوسیله ، بعدی سه های شتابدهنده
API . واحد و یکسان هایی
سخت های پلتفرم امکانات کردن مخفیامکانات از ای مجموعه ی بوسیله ، افزاری
داشت اطمینان توان می همواره که مشخصپشتیبانی سازی ( که شبیه با حتی شوند می
( آنها افزاری نرم
![Page 11: آشنايي با OpenGL](https://reader035.vdocuments.net/reader035/viewer/2022062217/568132b4550346895d99700d/html5/thumbnails/11.jpg)
OpenGL میکند کار چگونه
OpenGL یک آنکه از گرافیکی API بیشتر . توصیف بجای دارد ای رویه حالت باشد توصیفی
شود ظاهر باید چگونه صحنه اینکه و صحنهیافتن دست برای را الزم مراحل نویس برنامه
. این میکند تعیین را افکت یک یا معین نمایش بهاز زیادی دستورات فراخوانی باعث مراحل
OpenGL .رسم برای فرامین این میشودو نقطه و خط مانند گرافیکی ابتدایی اشکال
میشوند استفاده بعدی سه صحنه در . چندضلعی
![Page 12: آشنايي با OpenGL](https://reader035.vdocuments.net/reader035/viewer/2022062217/568132b4550346895d99700d/html5/thumbnails/12.jpg)
هاي واسط و كمكي هاي كتابخانهOpenGl
AGL, GLX, WGL GLU (OpenGL Utility Library) GLUT (OpenGL Utility Toolkit)
![Page 13: آشنايي با OpenGL](https://reader035.vdocuments.net/reader035/viewer/2022062217/568132b4550346895d99700d/html5/thumbnails/13.jpg)
در ها داده OpenGlانواع
در شده نوشته کدهای انتقال اینکه برایOpenGL پلتفرم به پلتفرم یک از راحتی به
باشند انتقال قابل داده OpenGL دیگر انواع . هر است کرده تعریف را خودش به مخصوص
حال بهر کامپایلری یا نویسی برنامه محیطمتغیر حافظه نوع و اندازه برای خاصی قواعد
سی مختلف دارد. " C "های
![Page 14: آشنايي با OpenGL](https://reader035.vdocuments.net/reader035/viewer/2022062217/568132b4550346895d99700d/html5/thumbnails/14.jpg)
![Page 15: آشنايي با OpenGL](https://reader035.vdocuments.net/reader035/viewer/2022062217/568132b4550346895d99700d/html5/thumbnails/15.jpg)
توابع دارند OpenGL تمام را زیر : قالب
در توابع نامگذاری قواعدOpenGL
<Library><Root><Optional><Optional>
![Page 16: آشنايي با OpenGL](https://reader035.vdocuments.net/reader035/viewer/2022062217/568132b4550346895d99700d/html5/thumbnails/16.jpg)
در توابع نامگذاری قواعدOpenGL
![Page 17: آشنايي با OpenGL](https://reader035.vdocuments.net/reader035/viewer/2022062217/568132b4550346895d99700d/html5/thumbnails/17.jpg)
در OpenGL خطاها
که میخواهید شما ای پروژه هر در که است واضحبصورت که بنویسید تربیت با و قوی ای برنامههم مقداری و دهد پاسخ کاربرانش به مودبانه
. گرافیکی های برنامه باشد داشته پذیری انعطافاز که قاعده OpenGL هم این از میکنند استفاده
. برنامه که میخواهید شما اگر نیستند مستثنیو خطاها باید شما شوند اجرا روان بطور هایتانقرار نظر مد همیشه را مترقبه غیر های رویداد
. دهید
![Page 18: آشنايي با OpenGL](https://reader035.vdocuments.net/reader035/viewer/2022062217/568132b4550346895d99700d/html5/thumbnails/18.jpg)
کدهای برای بدی اتفاقات که هنگامیمیدهند روی : خوب
OpenGL شش از ای مجموعه از ذاتی بطورخاص نوع یک پرچم هر که میکند حمایت پرچم
. از یکی که زمان هر میدهد نشان را خطا ازخطا آن با متناظر پرچم بیفتد اتفاق خطاها این . کدام آیاهیچ بفهمیم اینکه برای میشود برقرارصدا را تابع این نه یا برقرارند ها پرچم این از
: میزنیم glGetError:Glenum
glGetError(void) ;
در OpenGL خطاها
![Page 19: آشنايي با OpenGL](https://reader035.vdocuments.net/reader035/viewer/2022062217/568132b4550346895d99700d/html5/thumbnails/19.jpg)
کتابخانه در دیگری تابع از میتوانید همچنین شماGLU که کنید دارد gluErrorString استفاده نام
شرح را خطا پرچم که کنید دریافت ای رشته تا. میدهد
nst GLubyte* gluErrorString(GLenumerrorCode);
در OpenGL خطاها
![Page 20: آشنايي با OpenGL](https://reader035.vdocuments.net/reader035/viewer/2022062217/568132b4550346895d99700d/html5/thumbnails/20.jpg)
در OpenGL خطاها
![Page 21: آشنايي با OpenGL](https://reader035.vdocuments.net/reader035/viewer/2022062217/568132b4550346895d99700d/html5/thumbnails/21.jpg)
بعدي سه نويسي با برنامهاز دلفي OpenGLاستفاده
![Page 22: آشنايي با OpenGL](https://reader035.vdocuments.net/reader035/viewer/2022062217/568132b4550346895d99700d/html5/thumbnails/22.jpg)
نمايش پنجره اندازي تعييرGLvoid ReSizeGLScene(GLsizei width, GLsizei height){ if (height==0) { height=1; }
glViewport(0, 0, width, height);glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluPerspective(45.0f,(GLfloat)width/(GLfloat)height,0.1f,100.0f);
glMatrixMode(GL_MODELVIEW); glLoadIdentity();
}
![Page 23: آشنايي با OpenGL](https://reader035.vdocuments.net/reader035/viewer/2022062217/568132b4550346895d99700d/html5/thumbnails/23.jpg)
پنجره هاي ويژگي و عمق رنگ، تعريف
نمايشint InitGL(GLvoid){
glShadeModel(GL_SMOOTH);glClearColor(0.0f, 0.0f, 0.0f, 0.0f);glClearDepth(1.0f);glEnable(GL_DEPTH_TEST);glDepthFunc(GL_LEQUAL);glHint(GL_PERSPECTIVE_CORRECTION_HINT
, GL_NICEST); return TRUE;}
![Page 24: آشنايي با OpenGL](https://reader035.vdocuments.net/reader035/viewer/2022062217/568132b4550346895d99700d/html5/thumbnails/24.jpg)
اجسام رسم تابع
int DrawGLScene(GLvoid){ glClear(GL_COLOR_BUFFER_BIT |
GL_DEPTH_BUFFER_BIT); glLoadIdentity(); return TRUE;}
![Page 25: آشنايي با OpenGL](https://reader035.vdocuments.net/reader035/viewer/2022062217/568132b4550346895d99700d/html5/thumbnails/25.jpg)
نمايش پنجره حذف و ايجاد
تايع ايجاد پنجره رسم BOOL CreateGLWindow(char* title,
int width, int height, int bits, bool
fullscreenflag)تابع حذف پنجره رسم
GLvoid KillGLWindow(GLvoid)
![Page 26: آشنايي با OpenGL](https://reader035.vdocuments.net/reader035/viewer/2022062217/568132b4550346895d99700d/html5/thumbnails/26.jpg)
رنگ ساده، اشكال كشيدنآميزي
![Page 27: آشنايي با OpenGL](https://reader035.vdocuments.net/reader035/viewer/2022062217/568132b4550346895d99700d/html5/thumbnails/27.jpg)
صفحه در نقطه يك دادن نشانint DrawGLScene(GLvoid) {
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);glLoadIdentity(); glTranslatef(-1.5f,0.0f,-6.0f);glBegin(GL_POINTS);
glVertex3f( 0.0f, -2.47f, 0.0f);glVertex3f(0.0f,0.0f, 0.0f);glVertex3f( 0.0f, 0.0f, 5.0f);
glEnd();return TRUE;
}
![Page 28: آشنايي با OpenGL](https://reader035.vdocuments.net/reader035/viewer/2022062217/568132b4550346895d99700d/html5/thumbnails/28.jpg)
glVertex3f(0.0f,0.0f, 0.0f);
glVertex3f( 0.0f, -1.47f, 0.0f);
glVertex3f( 2.0f, 0.0f, 0.0f);
glTranslatef(-1.5f,0.0f,-6.0f);
glVertex3f( 2.0f, 0.0f, -12.0f);
glV
erte
x3f( 2
.0f, 0
.0f, 5
.0f);
![Page 29: آشنايي با OpenGL](https://reader035.vdocuments.net/reader035/viewer/2022062217/568132b4550346895d99700d/html5/thumbnails/29.jpg)
glVertex3f(0.0f,0.0f, 0.0f);
glVertex3f( 0.0f, 0.0f, 5.0f);
glVertex3f( 0.0f, -2.47f, 0.0f);
glTranslatef(-3.0f,0.0f,-6.0f);
![Page 30: آشنايي با OpenGL](https://reader035.vdocuments.net/reader035/viewer/2022062217/568132b4550346895d99700d/html5/thumbnails/30.jpg)
مثلث رسم
int DrawGLScene(GLvoid){
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);glLoadIdentity();glTranslatef(0.0f,0.0f,-6.0f);glBegin(GL_TRIANGLES);
glVertex3f( 0.0f, 1.0f, 1.0f);glVertex3f(-1.0f,-1.0f, 1.0f);glVertex3f( 1.0f,-1.0f, 1.0f);
glEnd();return TRUE;
}نشان مي دهد كه رئوس داخل
Begin تشكيل يك مثلث را خواهند داد.
![Page 31: آشنايي با OpenGL](https://reader035.vdocuments.net/reader035/viewer/2022062217/568132b4550346895d99700d/html5/thumbnails/31.jpg)
![Page 32: آشنايي با OpenGL](https://reader035.vdocuments.net/reader035/viewer/2022062217/568132b4550346895d99700d/html5/thumbnails/32.jpg)
ضلعی چهار رسمint DrawGLScene(GLvoid){
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);glLoadIdentity();glTranslatef(0.0f,0.0f,-6.0f);glBegin(GL_QUADS);
glVertex3f(-1.0f, 1.0f, 0.0f); // Top LeftglVertex3f( 1.0f, 1.0f, 0.0f); // Top RightglVertex3f( 1.0f,-1.0f, 0.0f); // Bottom RightglVertex3f(-1.0f,-1.0f, 0.0f); // Bottom Left
glEnd();return TRUE;
} نشان مي دهد كه رئوس داخل Begin تشكيل يك چهار ضلعی را
خواهند داد.
![Page 33: آشنايي با OpenGL](https://reader035.vdocuments.net/reader035/viewer/2022062217/568132b4550346895d99700d/html5/thumbnails/33.jpg)
![Page 34: آشنايي با OpenGL](https://reader035.vdocuments.net/reader035/viewer/2022062217/568132b4550346895d99700d/html5/thumbnails/34.jpg)
آميزي رنگبراي رنگ آميزي يك شکل دو روش وجود دارد :
- روش 1smootاول :
h
glTranslatef(-1.5f,0.0f,-6.0f);glBegin(GL_TRIANGLES);
glColor3f(4.0f,0.0f,0.0f);glVertex3f( 0.0f, 1.0f, 0.0f);glColor3f(0.0f,1.0f,0.0f);glVertex3f(-1.0f,-1.0f, 0.0f);glColor3f(5.0f,0.0f,1.0f);glVertex3f( 1.0f,-1.0f, 0.0f);
glEnd();براي هر راس يكبار رنگ دهي
مي كنيم.
![Page 35: آشنايي با OpenGL](https://reader035.vdocuments.net/reader035/viewer/2022062217/568132b4550346895d99700d/html5/thumbnails/35.jpg)
آميزي رنگ- روش 1
flatدوم :
glTranslatef(3.0f,0.0f,0.0f);glColor3f(0.5f,0.5f,1.0f);glBegin(GL_QUADS);
glVertex3f(-1.0f, 1.0f, 0.0f); // Top LeftglVertex3f( 1.0f, 1.0f, 0.0f); // Top RightglVertex3f( 1.0f,-1.0f, 0.0f); // Bottom RightglVertex3f(-1.0f,-1.0f, 0.0f); // Bottom Left
glEnd();
تنها يكبار رنگ دهي مي كنيم.
![Page 36: آشنايي با OpenGL](https://reader035.vdocuments.net/reader035/viewer/2022062217/568132b4550346895d99700d/html5/thumbnails/36.jpg)
![Page 37: آشنايي با OpenGL](https://reader035.vdocuments.net/reader035/viewer/2022062217/568132b4550346895d99700d/html5/thumbnails/37.jpg)
اشكال رسم شكل، دوران3D
![Page 38: آشنايي با OpenGL](https://reader035.vdocuments.net/reader035/viewer/2022062217/568132b4550346895d99700d/html5/thumbnails/38.jpg)
دوران تابع
glRotatef(Angle,Xvector,Yvector,Zvector) آرگمان دوران به شكل 4اين تابع با گرفتن
اعمال مي نمايد.Angleميزان زاويه گردش شكل :Xvector ميزان دوران در راستاي محور :XYvector ميزان دوران در راستاي محور :YZvector ميزان دوران در راستاي محور :Z
![Page 39: آشنايي با OpenGL](https://reader035.vdocuments.net/reader035/viewer/2022062217/568132b4550346895d99700d/html5/thumbnails/39.jpg)
دوران تابع گيري قرار محل
int DrawGLScene(GLvoid){ glClear(GL_COLOR_BUFFER_BIT |
GL_DEPTH_BUFFER_BIT);glLoadIdentity();glTranslatef(-1.5f,0.0f,-6.0f);glRotatef(rtri,0.0f,1.0f,0.0f); glBegin(GL_TRIANGLES);glEnd(); rtri+=0.2f;rquad-=0.15f;return TRUE;
}
![Page 40: آشنايي با OpenGL](https://reader035.vdocuments.net/reader035/viewer/2022062217/568132b4550346895d99700d/html5/thumbnails/40.jpg)
خروجي
![Page 41: آشنايي با OpenGL](https://reader035.vdocuments.net/reader035/viewer/2022062217/568132b4550346895d99700d/html5/thumbnails/41.jpg)
اشكال 3Dرسم
براي رسم اشكال سه بعدي تنها كافياست كه چند نتقطه جديد را براي بعد هاي
ديگر شكل خود را اضافه نماييد. در اينجا يك نمونه كد آورده مي شود كه به
مثلث و مربع مثال قبل يك بعد ديگر اضافه مي كند.
هر گوشه آنها را به رنگ خاصي در ميآورد.
![Page 42: آشنايي با OpenGL](https://reader035.vdocuments.net/reader035/viewer/2022062217/568132b4550346895d99700d/html5/thumbnails/42.jpg)
بعدي سه مثلث رسمglBegin(GL_TRIANGLES);glColor3f(1.0f,0.0f,0.0f); // RedglVertex3f( 0.0f, 1.0f, 0.0f); // Top Of Triangle (Front) glColor3f(0.0f,1.0f,0.0f); // GreenglVertex3f(-1.0f,-1.0f, 1.0f); // Left Of Triangle (Front) glColor3f(0.0f,0.0f,1.0f); // Blue glVertex3f( 1.0f,-1.0f, 1.0f); // Right Of Triangle (Front) glColor3f(1.0f,0.0f,0.0f); // Red glVertex3f( 0.0f, 1.0f, 0.0f); // Top Of Triangle (Right)glColor3f(0.0f,0.0f,1.0f); // Blue glVertex3f( 1.0f,-1.0f, 1.0f); // Left Of Triangle (Right)glColor3f(0.0f,1.0f,0.0f); // Green glVertex3f( 1.0f,-1.0f, -1.0f); // Right Of Triangle (Right)
![Page 43: آشنايي با OpenGL](https://reader035.vdocuments.net/reader035/viewer/2022062217/568132b4550346895d99700d/html5/thumbnails/43.jpg)
بعدي - سه مثلث 2رسم
glColor3f(1.0f,0.0f,0.0f); // Red glVertex3f( 0.0f, 1.0f, 0.0f); // Top Of Triangle (Back) glColor3f(0.0f,1.0f,0.0f); // Green glVertex3f( 1.0f,-1.0f, -1.0f); // Left Of Triangle (Back) glColor3f(0.0f,0.0f,1.0f); // Blue glVertex3f(-1.0f,-1.0f, -1.0f); // Right Of Triangle (Back) glColor3f(1.0f,0.0f,0.0f); // Red glVertex3f( 0.0f, 1.0f, 0.0f); // Top Of Triangle (Left)glColor3f(0.0f,0.0f,1.0f); // Blue glVertex3f(-1.0f,-1.0f,-1.0f); // Left Of Triangle (Left)glColor3f(0.0f,1.0f,0.0f); // Green glVertex3f(-1.0f,-1.0f, 1.0f); // Right Of Triangle (Left) glEnd();
![Page 44: آشنايي با OpenGL](https://reader035.vdocuments.net/reader035/viewer/2022062217/568132b4550346895d99700d/html5/thumbnails/44.jpg)
بعدي سه مربع رسمglBegin(GL_QUADS);glColor3f(0.0f,1.0f,0.0f); // Set The Color To Green glVertex3f( 1.0f, 1.0f,-1.0f); // Top Right Of The Quad (Top) glVertex3f(-1.0f, 1.0f,-1.0f); // Top Left Of The Quad (Top) glVertex3f(-1.0f, 1.0f, 1.0f); // Bottom Left Of The Quad (Top) glVertex3f( 1.0f, 1.0f, 1.0f); // Bottom Right Of The Quad
(Top) glColor3f(1.0f,0.5f,0.0f); // Set The Color To Orange glVertex3f( 1.0f,-1.0f, 1.0f); // Top Right Of The Quad
(Bottom)glVertex3f(-1.0f,-1.0f, 1.0f); // Top Left Of The Quad (Bottom)glVertex3f(-1.0f,-1.0f,-1.0f); // Bottom Left Of The Quad
(Bottom)glVertex3f( 1.0f,-1.0f,-1.0f); // Bottom Right Of The Quad
(Bottom)
![Page 45: آشنايي با OpenGL](https://reader035.vdocuments.net/reader035/viewer/2022062217/568132b4550346895d99700d/html5/thumbnails/45.jpg)
بعدي - سه مربع 2رسم
glColor3f(1.0f,0.0f,0.0f); // Set The Color To Red glVertex3f( 1.0f, 1.0f, 1.0f); // Top Right Of The Quad (Front) glVertex3f(-1.0f, 1.0f, 1.0f); // Top Left Of The Quad (Front) glVertex3f(-1.0f,-1.0f, 1.0f); // Bottom Left Of The Quad
(Front) glVertex3f( 1.0f,-1.0f, 1.0f); // Bottom Right Of The Quad
(Front) glColor3f(1.0f,1.0f,0.0f); // Set The Color To Yellow glVertex3f( 1.0f,-1.0f,-1.0f); // Bottom Left Of The Quad
(Back)glVertex3f(-1.0f,-1.0f,-1.0f); // Bottom Right Of The Quad
(Back)glVertex3f(-1.0f, 1.0f,-1.0f); // Top Right Of The Quad (Back) glVertex3f( 1.0f, 1.0f,-1.0f); // Top Left Of The Quad (Back)
![Page 46: آشنايي با OpenGL](https://reader035.vdocuments.net/reader035/viewer/2022062217/568132b4550346895d99700d/html5/thumbnails/46.jpg)
بعدي - سه مربع 3رسم
glColor3f(0.0f,0.0f,1.0f); // Set The Color To Blue glVertex3f(-1.0f, 1.0f, 1.0f); // Top Right Of The Quad (Left) glVertex3f(-1.0f, 1.0f,-1.0f); // Top Left Of The Quad (Left) glVertex3f(-1.0f,-1.0f,-1.0f); // Bottom Left Of The Quad (Left) glVertex3f(-1.0f,-1.0f, 1.0f); // Bottom Right Of The Quad
(Left) glColor3f(1.0f,0.0f,1.0f); // Set The Color To VioletglVertex3f( 1.0f, 1.0f,-1.0f); // Top Right Of The Quad (Right) glVertex3f( 1.0f, 1.0f, 1.0f); // Top Left Of The Quad (Right) glVertex3f( 1.0f,-1.0f, 1.0f); // Bottom Left Of The Quad
(Right)glVertex3f( 1.0f,-1.0f,-1.0f); // Bottom Right Of The Quad
(Right)glEnd();
![Page 47: آشنايي با OpenGL](https://reader035.vdocuments.net/reader035/viewer/2022062217/568132b4550346895d99700d/html5/thumbnails/47.jpg)
خروجي
![Page 48: آشنايي با OpenGL](https://reader035.vdocuments.net/reader035/viewer/2022062217/568132b4550346895d99700d/html5/thumbnails/48.jpg)