X
تبلیغات
OpenGl
اتصال آسان براي مشتري هاي شما = فروش بيشتر

قابل توجه دوستان عزيزه ارائه دهنده ي خدمات H-T-T-p-S  و س - ا ك - س و و - يي - ان با خريد اين برنامه ديگر نگران دان تايم سرور , از دست دادن مشتري  هاي خود نباشيد .

قابليتهاي كليدي نرم افزار :

1. برنامه داراي نرم افزار پروك س ي فا ي ر تو كار مي باشد يعني نياز به نصب و ريجيستر برنامه پرو ك سي فاي ر بروي سيستم مشتري نيست . در صورت وجود پروك س ي فا ي ر بروي سيستم مشتري تداخلي با آن ندارد.

 مشتري ديگر درگير تنظيم كردن اطلاعات سرور شما در برنامه  پروك س ي فا ي ر نيست .

در صورت بروز مشكل در يك يا چند سرور شما به سرعت مي توانيد آدرس سرور پشتيبان را به صورت آني در برنامه قرار دهيد و سرورهاي خراب را از ليست حذف كنيد

قرار دادن كانكشن و پ ا ن سرور شما در برنامه  و ‌در هر زمان مي توانيد تنظيمات  كانكشن سرور خود را به صورت آنلاين تغيير دهيد.

قرار دادن بي نهايت سرويس دهنده درون ليست سرورها .


ليست سرويس دهتدها (‌سرورهاي )‌ شما از يك فايل تكست از از هر كجا كه شما بخواهيد به صورت آنلان بارگذاري مي شود (ترجيحا بروي سرورهاي ديگر باشد كه در زمان خرابي سرور با مشكل بر نخوريد‌) كه در صورت نياز مي توانيد تغييرات را بروي ليست سرورها اعمال كنيد.

داراي 2 عدد پنل براي تبليغات 465*106 كه از آدرس مورد نظر شما بارگذاري مي شوند.

برنامه نياز به هيچ فايل جانبي ندارد و به صورت پرتابل مي باشد بدون نياز به نصب .

برنامه به سفارش شما قابل تغيير است .

قيمت توافقي

وب سايت برنامه + توضيحات

                         


نوشته شده توسط غریبی در دوشنبه دهم مهر 1391 ساعت 15:58 | لینک ثابت |

سلام دوستان گرامی

فعلا برگزاری امتحانات برام فرصتی نگذاشته ولی برای پاسخ به شما دوستان اومدم

دانشجوی برنامه نویس، نوشتن گرافیکی راه های مختلفی داره ولی ساده ترین هاش بکارگیری

glutStrokeCharacter یا تابع glutBitmapCharacter  هست . یه نمونه برنامه اش رو از اینجا بگیرین

توضیح این مطالب رو طبق سرفصلی که توی وبلاگ گذاشتم بعدا خواهم گفت

دوست دیگری هم  ایمیل زدن و نوشتن یه برنامه opengl رو خواستن. عزیزان من  فرصت انجام پروژه برای شما رو ندارم و این کار رو که پروژه درسی فرد دیگری رو انجام بدم رو هم صحیح نمی دونم. بنابراین لطفا فقط در راستای یادگیری از من مطلب بخواهید. موفق باشین

نوشته شده توسط غریبی در پنجشنبه نوزدهم خرداد 1390 ساعت 6:36 | لینک ثابت |
سلام عزیزان

وقت همگی بخیر

برنامه رو بگیرین: hello.c

این برنامه برای ترسیم خط هستش

/*
 * hello.c
 * This is a simple, introductory OpenGL program.
 */
#include < gl/glut.h >

void display(void)
{
/* clear all pixels  */
   glClear (GL_COLOR_BUFFER_BIT);

/* draw white polygon (rectangle) with corners at
 * (0.25, 0.25, 0.0) and (0.75, 0.75, 0.0)  */
   glColor3f (1.0, 1.0, 1.0);
   glBegin(GL_LINES);
      glVertex3f (0.25, 0.25, 0.0);
      glVertex3f (0.75, 0.25, 0.0);
      glVertex3f (0.75, 0.75, 0.0);
      glVertex3f (0.25, 0.75, 0.0);
   glEnd();

/* don't wait! start processing buffered OpenGL routines */
   glFlush ();
}

void init (void)
{
/* select clearing color  */
   glClearColor (0.0, 0.0, 0.0, 0.0);

/* initialize viewing values  */
   glMatrixMode(GL_PROJECTION);
   glLoadIdentity();
   glOrtho(0.0, 1.0, 0.0, 1.0, -1.0, 1.0);
}

/*
 * Declare initial window size, position, and display mode
 * (single buffer and RGBA).  Open window with "hello"
 * in its title bar.  Call initialization routines.
 * Register callback function to display graphics.
 * Enter main loop and process events.
 */
int main(int argc, char** argv)
{
   glutInit(&argc, argv);
   glutInitDisplayMode (GLUT_SINGLE | GLUT_RGB);
   glutInitWindowSize (250, 250);
   glutInitWindowPosition (100, 100);
   glutCreateWindow ("hello");
   init ();
   glutDisplayFunc(display);
   glutMainLoop();
   return 0;   /* ANSI C requires main to return int. */
}

توی تابع display بین بلاک glBegin  و glEnd بازم چندتا راس نوشتیم ولی این بار بخاطر پارامتر GL_LINES  خطوط ترسیم می شن. با شروع از اولین راس، بازای هر دو راس پشت سرهم یه خط رسم میشه . پس تعداد رئوسی که توی بلاک گذاشتیم باید زوج باشه وگرنه آخریش تنها می مونه و حتی نقطه اش هم رسم نمیشه آخه پارامتر ما GL_POINTS نیست که نقطه بذاره!

همه پارامترهایی که میشه توی  glBegin  داد رو در زیر ذکر می کنم .

پارامترها

ما از این پارامترها برای ترسیم چندضلعی و دایره و بیضی استفاده می کنیم

تا برنامه بعد که به مطالب قشنگ ترسیمی می پردازیم خدا نگهدارتان

  

نوشته شده توسط غریبی در دوشنبه نهم خرداد 1390 ساعت 6:9 | لینک ثابت |

سلام دوستان عزیز

همگی خوبین؟

بله دوست گرامی می دونم دیر کردم و منتظر موندین، دیگه بیشتر سعی می کنم بیام :-)

برنامه begin.c را از اینجا بگیرین. این برنامه سه نقطه سیاه را در سه مختصات گوناگون درون پنجره گرافیکی با پس زمینه سفید نمایش می‌دهد:

#include    < windows.h > // use as needed for your system

#include < gl/glut.h >

 //>>>>>>>>>>>>>>>>>>>>>> myInit <<<<<<<<<<<<<<<<<<<<<<<<

void myInit(void)

{

glClearColor(1.0,1.0,1.0,0.0); // set white background color

glColor3f(0.0f, 0.0f, 0.0f); // set the drawing color

glPointSize(4.0); // a ‘dot’ is 4 by 4 pixels

glMatrixMode(GL_PROJECTION);

glLoadIdentity();

gluOrtho2D(0.0, 640.0, 0.0, 480.0);

}

 //>>>>>>>>>>>>>>>>>>>>>> myDisplay <<<<<<<<<<<<<<<<<<<<<<<<

void myDisplay(void)

{

glClear(GL_COLOR_BUFFER_BIT); // clear the screen

glBegin(GL_POINTS);

glVertex2i(100, 50); // draw three points

glVertex2i(100, 130(;

glVertex2i(150, 130);

glEnd();

glFlush(); // send all output to display

{

 //>>>>>>>>>>>>>>>>>>>>>> main <<<<<<<<<<<<<<<<<<<<<<<<

void main(int argc, char** argv)

{

glutInit(&argc, argv); // initialize the toolkit

glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB); // set display mode

glutInitWindowSize(640,480); // set window size

glutInitWindowPosition(100, 150); // set window position on screen

glutCreateWindow("my first attempt"); // open the screen window

glutDisplayFunc(myDisplay); // register redraw function

myInit();

glutMainLoop(); // go into a perpetual loop

}

 از این برنامه به بعد، فقط دستورات جدید را توضیح می‌دهیم .

ابتدای برنامه wnddows.h  آمده است. افزودن این خط زمانی کاربرد دارد که بخواهیم داخل برنامه از دستورات مربوط به برنامه نویسی تحت ویندوز استفاده نماییم. گرچه با بکارگیری glut ما معمولا از دستورات تحت ویندوز استفاده نمی‌کنیم، ولی نوشتن این خط در بسیاری از برنامه‌ها متداول است.

درون تابع main دو دستور جدید زیر را داریم:

glutInitWindowSize(640,480);

void glutInitWindowSize(int width,int height);     الگوی تابع                                               

پارامترهای ورودی این تابع به ترتیب بیانگر عرض و ارتفاع پنجره برحسب پیکسل هستند. این مقادیر باید بزرگتر از صفر باشند. پیش فرض هردوی این مقادیر 300 است.

تابع زیر نیز مکان شروع پنجره (گوشه بالای سمت چپ آن) را نسبت به مخصات درون مانیتور تعیین می‌کند.

glutInitWindowPosition(100, 150);

void glutInitWindowPosition(int x,int y);      الگوی تابع                                                   

پارامترهای این تابع به ترتیب بیانگر مکان X و Y گوشه بالای چپ پنجره برحسب پیکسل هستند. مقادیر پیش فرض هردوی این پارامترها عدد 1- است. دقت کنید که منفی بودن هریک از این مقادیر موجب می‌شود پنجره از مانیتور خارج شود و دیده نشود، اما در عمل، پنجره به داخل سیستم ویندوز هل داده می‌شود تا قابل مشاهده باشد.

منظور از تعیین اندازه و مکان پنجره صرفا ارائه پیشنهادی به سیستم پنجره‌ای برای دادن مقادیر اولیه به آنها است و سیستم ملزم به استفاده دائم از این مقادیر تا پایان برنامه نیست؛ بلکه هنگام اجرای برنامه‌ها کاربر می‌تواند اندازه یا مکان پنجره را تغییر دهد. با درج تابع پس‌فراخوان reshape باید در هر لحظه برنامه را از این تغییرات مطلع نماییم[glutSpec]. این مطلب را جلوتر خواهیم دید.

 

درون تابع myDisplay یک بلاک محصور میان glBegin و glEnd تعریف شده است.

glBegin(GL_POINTS);

glVertex2i(100, 50); // draw three points

glVertex2i(100, 130);

glVertex2i(150, 130);

glEnd();

الگوی این توابع محصورکننده بصورت زیر است:

void glBegin(GLenum mode);

void glEnd (void);

درون این بلاک گروهی از رئوس تعریف می‌شوند که تشکیل دهنده یک یا چند شکل اولیه هندسی مانند نقطه، خط یا چندضلعی هستند. نوع این شکل اولیه با پارامتر درون glBegin  مشخص می‌شود. در اینجا داریم:

glBegin(GL_POINTS);

 یعنی رأس‌های درون بلاک بیانگر نقاط هستند. پارامترهای دیگر را نیز بزودی می‌بینیم.

هر رأس با تابع glVertex تعریف می‌شود که دارای الگوی زیر است:

void glVertex2i(GLint x, GLint y);

البته الگوی فوق کلی نیست و می‌تواند پارامترهای بیشتر (در حالت سه بعدی) با انواع داده‌ای دیگر را نیز بپذیرد.

توجه کنید که نمی‌توانیم  فراخوانی این تابع را خارج از بلاک  glBegin و glEnd انجام دهیم[msdn].

 

در تابع myInit نیز چند تابع جدید داریم. تابع زیر اندازه قطر نقطه‌ها را تعیین می‌کند:

glPointSize(4.0);

void glPointSize (GLfloat size);                                  الگوی تابع

اندازه پیش فرض پارامتر این تابع عدد 1 است. همواره اندازه واقعی با گرد شدن آن به نزدیکترین عدد صحیح حاصل می‌شود.

اندازه نقطه کوچکتر یا مساوی صفر مجاز نیست. بکارگیری این تابع در میان بلاک glBegin و glEnd موجب خطا می‌گردد. همچنین بکارگیری توابع  glFlush، glClear نیز در میان بلاک مذکور خطا آفرین است [msdn].

توابع زیر نیز جدید هستند:

glMatrixMode(GL_PROJECTION);

glLoadIdentity();

توضیح مفصل این توابع را  به تعویق می‌افکنیم. فقط بدانید که این توابع مقدمات اجرای درست تابع بعدی خود را فراهم می‌سازندکه این تابع است:

gluOrtho2D(0.0, 640.0, 0.0, 480.0); 

void gluOrtho2D(GLdouble left, GLdouble right,GLdouble bottom, GLdouble top);  الگوی تابع

صحنه ما را توسط چهار صفحه برش می‌زند و فضای محصور میان آنها را درون پنجره می‌بینیم. به عبارت ساده‌تر بیانگر مختصات قابل دسترسی درون پنجره است. در این مثال ، محور x درون پنجره از مختصات 0 تا 640 و محور y از مختصات 0  تا 480 را داراست. بنابراین فقط شکل‌هایی که درون این مختصات باشند را می‌توانیم درون پنجره ببینیم.

در این مثال مختصات نقاط به گونه ای داده شده‌اند که درون پنجره قابل رؤیت باشند.

به امید دیدار زودتر شما عزیزان

 

نوشته شده توسط غریبی در جمعه سی ام اردیبهشت 1390 ساعت 21:29 | لینک ثابت |
سلام به همه دوستان گلم

از تاخیر من که نگران نشدین؟

میام ولی خب الان سرم خیلی شلوغ شده

آقا مسعود عزیز  من لینک نسخه سوم کتاب گرافیک  یعنی

Donald Hearn and M. Pauline Baker, Computer Graphics , 3rd (with opengl), Prentice Hall, 2004

رو پیدا کردم اینجاست

البته دقت کنین که از سایت رپیدشیرهست که یه مدتیه با مرورگر IE باز نمیشه و باید از سایر مرورگرها مثل گوگل کروم استفاده کنین.

این همون نسخه ای هست که مرجع پیام نور هست و آقای قلی زاده هم ترجمه کردن

ولی نسخه 4 رو که چاپ 2010 هست هنوز پیدا نکردم اگه کسی از دوستان یافت لطفا خبر بده

ممنونم

دوست مهندس برنامه نویس مون هم لطفا مساله خودش رو واسه برنامه نویسی توضیح بده و توی نظرات بگه یا ایمیل بزنه

شاااااد باشین

نوشته شده توسط غریبی در چهارشنبه بیست و یکم اردیبهشت 1390 ساعت 13:1 | لینک ثابت |
سلام دوستان عزیز

آقایونس جان دارم بررسی می کنم و هنوز به نتیجه قطعی نرسیدم

 

خب امروز می خوام فرق گرافیک رایانه ای با چند رسانه ای (multimedia) رو بصورت خلاصه بگم

چندرسانه ای شامل روش‌های ذخیره‌سازی، نمایش و انتقال اطلاعات رایانه‌ای از طریق متن و ابر‌متن[1]، گرافیگ، تصویر، صدا، پویانمایی[2] و ویدئو است. سیستم چند رسانه‌ای سیستمی ‌است که بوسیله رایانه کنترل می‌شود، تمام اجزای آن درون یک سیستم واحد مجتمع‌سازی[3] شده‌اند، اطلاعات را بصورت رقمی[4] نمایش می‌دهد و واسط کاربر آن محاوره‌ای[5] (تعاملی) است. در ‌این دانش، ابزارها و روش‌های ذخیره‌سازی، انتقال و نمایش اطلاعات معرفی می‌شوند. فناوری تولید و ویرایش و قالب[6]‌های ذخیره‌سازی متن، صدا، تصویر، انیمیشن و ویدئو مورد مقایسه و بررسی قرار می‌گیرند. همچنین روش‌های فشرده سازی اطلاعات و مدیریت تیم‌های تولیدکننده و پروژه‌های چند رسانه‌ای نیز بیان می‌گردند.


[1] hypertext

[2] animation

[3] integrate

[4] ‌digital

[5] interactive

[6] format

موفق و شاد باشین دوستان

نوشته شده توسط غریبی در شنبه دهم اردیبهشت 1390 ساعت 6:17 | لینک ثابت |
سلام خدمت دوستان خوب و عزیز

خدمت حسن آقای گل بگم که من بعد از اتمام این برنامه اول برنامه نقطه رو می گم و بعدش هم خط و چندضلعی و بعدش نوبت به دایره و بیضی می رسه اما سعی می کنم این برنامه ها رو زودتر بذارم تا خواسته شما هم زود برآورده بشه

اینم ادامه ماجرای اولین برنامه  و پایان خوش اون:

  •  یافتن نسخه OpenGL

برای ارسال پرس وجو در‌بارۀ شماره نسخه کتابخانۀ GL، نام پرداخت‌کننده، نام عرضه کننده و نام گسترش‌های آن، از تابع glGetString با پارامترهای مناسب استفاده می‌کنیم:

 Const GLubyte *glGetString (GLenum name);                                       الگوی تابع 

که پارامتر name به ترتیب مقادیر  GL_VERSION، GL_RENDERER، GL_VENDOR و GL_EXTENSIONS را در برنامه دارد. برای ‌این‌که سازنده ‌این گسترش‌ها را از روی پیشوند سه حرفی بشناسید به مرجع انگلیسی superBible   که براتون لینک گذاشتم مراجعه کنین. تابع مشابهی را نیز با پارامترهای مناسب برای یافتن نسخه کتابخانه GLU و نام گسترش‌های آن بکار می‌بریم‌:

Const GLubyte *gluGetString (GLenum name);                                       الگوی تابع  

که پارامتر name در برنامه مقادیر GLU_VERSION  GLU_EXTENSIONS, را گرفته است.

برای چاپ نتایج از دستورprintf  با قابلیت چاپ رشته (s%) استفاده کرده‌ایم.

 توجه داشته باشید که مقدار بازگشتی توابع فوق، اشاره‌گری از نوع GLubyte است که معادل کاراکتر بدون علامت در زبان C می‌باشد و برای نگهداری مقدار آن درون یک متغیر باید از تبدیل نوع[1] استفاده کنیم که ‌این حالت نیز در ادامه برنامه درج شده است.

نکته

نام توابع SetupRC و RenderScene کاملا اختیاری است و می‌توانیم هر نام دلخواه دیگری نیز بر آن‌ها بگذاریم. در برنامه‌های آتی گاهی بجای SetupRC نام‌های init یا myinit و بجای RenderScene اسامی display  و mydisplay را خواهیم دید.


[1] type casting

خب به سلامتی تموم شد

اما شاید بگین واه واه چقدر طولانی بود کدش، ولی واقعیت اینه که کد Opengl برنامه خیلی کم بود و حجم برنامه بخاطر دستورات printf هست که خب منم دوبار با دو مدل مختلف نوشته بودم براتون

و ضمنا برخی دستورات هم واسه مدیریت پنجره هستن و گرافیکی نبودن

خب منم خیلی براتون حرف زدم تا هیچ ابهامی نمونده باشه :-)

فعلا خداحافظ تا برنامه بعدی

نوشته شده توسط غریبی در سه شنبه ششم اردیبهشت 1390 ساعت 20:10 | لینک ثابت |
سلام به همه دوستان خوبم

امیدوارم سلامت و پرنشاط باشین اینم ادامه برنامه اس

  •  فراخوانی‌های گرافیکی OpenGL

تابع SetupRC  شامل فراخوانی یک تابع بصورت زیر است :

 glClearColor (0.0,0.0,1.0, 1.0);

 

این تابع رنگ بکار رفته برای پاک کردن پنجره را تنظیم می‌کند. الگوی ‌این تابع بصورت زیر است:

 void  glClearColor (GL‌clamp‌f red, GL‌clamp‌f green, GL‌clamp‌f blue, GL‌clamp‌f alpha);

 

GL‌clamp‌f در اکثر پیاده‌سازی‌های OpenGL بصورت float تعریف می‌شود. در OpenGL هر رنگ بصورت مخلوطی از مؤلفه‌های قرمز، سبز و آبی نمایش می‌یابد. محدوده هر مؤلفه می‌تواند از 0.0 تا 1.0 تغییر یابد. ‌این روش مشابه تعیین رنگ در نرم‌افزارهای نقاشی مانند paint  یا فتوشاپ در ویندوز است، در نرم افزار paint می‌توانید با طی مسیر زیر، مقادیرRGB برای ساختن رنگ‌های مختلف را ببینید

 Paint\ Colors\Edit Colors\ Define Custom Colors

 تنها تفاوتی که وجود دارد ‌این است که درون paint رنگ‌ها در بازۀ 0 تا 255 (مقادیر صحیح درون یک بایت) نشان داده می‌شوند. بدین ترتیب 256×256×256 یعنی بیش از 16 میلیون رنگ مختلف قابل تولید است.

در OpenGL با تقسیم هر مقدار رنگی خوانده شده ازpaint  بر عدد 255 می‌توانیم مقدار آن در بازۀ [1و0] را بدست آوریم و در این تابع قرار دهیم (با عدم انجام این تقسیم، گرچه برنامه پیغام خطا نمی‌دهد ولی به احتمال قوی رنگ مورد نظر ما را نیز تولید نخواهد کرد). وجود اعداد اعشاری برای رنگ می‌تواند بصورت مجازی بی نهایت رنگ را تولید کند ولی از نظر تجربی رنگ خروجی در بیشتر ابزارها منحصر به همان 24 بیت (16 میلیون رنگ) خواهد بود، زیرا در عمل OpenGL هر مقدار رنگی را به نزدیک‌ترین مقدار در دسترس برای آن در سخت‌افزار ویدئویی تبدیل می‌کند.

 

آخرین آرگومان تابع glClearColor ، مؤلفه آلفا است که برای تلفیق[1] رنگ و جلوه‌های ویژه‌ای همچون شفافیت بکار می‌رود. شفافیت به معنای قابلیت عبور نور از میان شئ است. فرض کنید می‌خواهیم صحنه‌ای شامل یک شیشه با لکه‌های قرمز و یک نور آبی در پشت آن بسازیم. رنگ آبی نور بر رنگ قرمز شیشه اثر می‌گذارد ( آبی+ قرمز= بنفش). می‌توانید مؤلفه آلفا را برای تولید یک رنگ قرمز نیمه شفاف [2] بکار برید تا مانند یک سطح شیشه‌ای عمل کند و اشیای پشت آن را بتوان دید. در مبحث تلفیق به ‌این جلوه ویژه خواهیم پرداخت و تا آن زمان همیشه مقدار آلفا را برابر 1.0 در نظر می‌گیریم. به شرط فعال بودن قابلیت تلفیق رنگ، مقدار 1.0 برای آلفا به معنای جسم کاملا کدر است  بطوری که پشت آن پیدا نیست و مقدار 0.0 بیانگر جسم کاملا شفاف است که فقط پشت آن پیدا است و خودش را نمی‌توان دید. سایر مقادیر بین این دو مقدار نیز جسم نیمه شفاف می‌سازند.

  •   پاک کردن بافر رنگ

درون تابع Render‌Scene  ترسیم صحنه انجام می‌گیرد. در ‌این تابع رنگ آبی را برای پاک کردن پنجره بکار می‌بریم و پنجره را با آن پاک می‌کنیم (به آن رنگ در می‌آوریم). دستور زیر پاک کردن واقعی را انجام می‌دهد‌:

 glClear(GL_COLOR_BUFFER_BIT);

 void glClear(GLbitfield mask);   الگوی تابع                                                                                      

این دستور یک بافر خاص یا ترکیبی از بافرها را پاک می‌کند. مقصود از بافر در ‌این‌جا بخشی از حافظه است که اطلاعات تصویر را ذخیره می‌کند. مؤلفه‌های قرمز، سبز و آبی یک تصویر ترسیمی در کنار هم بافر رنگ[3] یا بافر پیکسل[4] نامیده می‌شوند. بیش از یک نوع بافر در OpenGL در دسترس است (‌مثلاً بافرهای رنگ، عمق[5]، استنسیل[6] و انباره[7]) که در ‌آینده آن‌ها را بررسی می‌کنیم. بافر رنگ مکانی است که تصویر نمایش داده شده درون آن ذخیره شده است و پاک کردن آن با glClear، آخرین ترسیم انجام شده درون پنجره را حذف می‌کند. در واقع آنچه قبلاً به نام بافر قاب بدان اشاره نمودیم به مجموعه تمام ‌این بافرها گفته می‌شود، زیرا همگی باهم کار می‌کنند. شکل زیر را برای تقریب به ذهن مشاهده کنید‌:

 

بافر

انباره

بافر

استنسیل

بافر

عمق

بافر

رنگ

 

  •  صف را خالی کنید

آخرین فراخوانی تابع Render‌Scene این است‌:

 glFlush();

 void glFlush (void);                                                                        الگوی تابع     

 

این خط باعث اجرای تمام فرمان‌های OpenGL از ابتدای تابع ‌ Render‌Sceneتاکنون می‌گردد که هنوز اجرا نشده‌اند. در ‌این‌جا فقط یک فرمان داریم : gl‌Clear 

از نظر درونی، OpenGL یک خط لوله پرداخت[8] را بکار می‌گیرد که فرمان‌ها را بصورت ترتیبی پردازش می‌کند. فرمان‌ها و عبارات OpenGL اغلب درون صفی قرار می‌گیرند تا گردانندۀ[9] OpenGL چندین «فرمان» را به یکباره پردازش کند.‌ این تنظیم، کارایی را بهبود می‌دهد زیرا گردانندة برقراری ارتباط با سخت‌افزار ذاتاً کند است. ‌ایجاد یک ارتباط با سخت‌افزار و بارگذاری حجم عظیمی‌ از داده‌ها بسیار سریع‌تر از ‌ایجاد چندین ارتباط کوچک به ازای هر فرمان یا دستورالعمل است.

بنابراین نتیجه اجرای تمام دستورات ابتدا درون بافر قاب ذخیره می‌شوند و در نهایت با فراخوانی glFlush بر روی صفحه نمایش تخلیه می‌گردند. در‌ این برنامه gl‌Flush به OpenGL می‌گوید که بجای انتظار برای صدور فرمان‌های ترسیمی ‌دیگر، باید دستورالعمل‌های ترسیمی‌که قبلاً پشتیبانی کرده است را اجرا نماید.

جالب است بدانید که اگر‌این دستور را در برنامه غیرفعال[10] کنیم پنجره گرافیکی کاملاً  خالی خواهد بود بطوری که هرچه پشت آن باشد را خواهیم دید!


[1] blending

[2] semitransparent

[3] color buffer

[4] pixel buffer

[5] depth

[6] stencil

[7] accumulation

[8] rendering pipeline

[9] driver

[10] مثلا با تبدیل آن به توضیحات( comment) بصورت     //glFlush();      یا      */ glFlush() /*

نوشته شده توسط غریبی در دوشنبه پنجم اردیبهشت 1390 ساعت 6:2 | لینک ثابت |
سلام

دوستان خواسته بودن که سرفصل ها رو هم جداگانه ذکر کنیم. من یه سرفصل از وزارت علوم قبلا براتون گذاشتم ولی اینها هم می تونن یه سر فصل آپدیت شده برای دروس گرافیک رایانه ای ۱ و گرافیک رایانه ای ۲ باشن که من براین اساس می خوام وبلاگ رو  پیش ببرم

 

مباحث تئوری گرافیک کامپیوتری ۱

بیان مقدمات، هدف و انگیزه

آشنایی با نمایشگرهای گرافیکی، مختصات، نقطه و توابع استعلام

الگوریتم‌های ترسیم خط و ویژگی های آن

الگوریتم پرکردن چندضلعی‌ها، ایجاد طیف رنگ و سایه‌زنی  دوبعدی

الگوریتم‌های ترسیم دایره و بیضی

ساخت انیمیشن و چند پنجره

تبدیلات هندسی دو و سه بعدی، اجرای تمام صفحه

گرافیک محاوره‌ای (صفحه کلید،ماوس و منو)

مدلسازی و الگوریتم‌های تولید اشیای سه بعدی

دید سه بعدی (دورنما یا پرسپکتیو و دوربین)

الگوریتم‌های برش و حذف وجوه پسین و آزمون عمق

فراکتال، گرامر شکل و تولید عوارض زمین

مدلسازی سلسله مراتبی و مفروش‌سازی

تولید کاراکتر‌ها

آشنایی با طراحی بازی، تشخیص برخورد و صحنه نامتناهی

صداگذاری با Fmod

 
 

مباحث تئوری گرافیک کامپیوتری ۲

بیان مقدمات، هدف و انگیزه- دوربین پیشرفته

نورپردازی فراگیر،پخشی و مدل‌های رنگی

نورپردازی آینه‌ای،موضعی، نور نقطه‌ای و سایه‌زنی سه‌بعدی

ایجاد سایه

اثر بجا مانده از حرکت و تلفیق رنگ‌ها

ایجاد مه و خوش‌نماسازی، بافر استنسیل و کاربردهای آن و مقایسه آن با بافر عمق

منحنی‌ها و سطوح بزیر

منحنی‌ها و سطوح بی اسپلاین و چیدن منحنی

قالب فایل‌های گرافیکی، بارگذاری و پردازش تصویر

بارگذاری فایل های سه بعدی

نگاشت و تولید بافت

نگاشت چندین بافت و mipmap و بافت کارتونی

نگاشت محیط،مکعبی،کروی و نگاشت برجسته و skybox

سیستم‌های ذرّه‌ای، خروجی AVI

گرافیک محاوره‌ای(انتخاب و گزینش)

صداگذاری با OpenAL

نوشته شده توسط غریبی در پنجشنبه یکم اردیبهشت 1390 ساعت 6:0 | لینک ثابت |
سلام به همگی

امیدوارم مثل همیشه خوب و خوش باشین

دوستان اصرار داشتن که جزوه فارسی هم معرفی کنم

اینم جزوه فارسی تالیف آقای دکتر جواد مهری از دانشگاه تبریز که گرافیک کامپیوتری رو با Opengl و تحت زبان خوب C بیان کرده اند: دانلود

نوشته شده توسط غریبی در چهارشنبه سی و یکم فروردین 1390 ساعت 9:16 | لینک ثابت |