ببینید در اوپن جی ال اطلاعات اینطوری پروسس میشن:
اطلاعات خام ورتکسها -> شید کردن ورتکسها (جی پی یو) -> درست کردن پریمیتیوها (مثلت و کواد) (جی پی یو) و بقیش در سی پی یو (رسترایز کردن و بقیه).
رندر دو نوعه : رندر به تصویر و رندر به فایل. تصاویر مانیتور شما هر چی که باشه، چه اکسل چه سینما فوردی، داره به صورت اسویچ عقب جلو بافر به بافر ندر میشه. در GLFW که یک ایمپلمینیشن اوپن جی ال هست، اینکار با این تابع انجام میشه:
کد:
glfwSwapBuffers(window);
حالا یک بافر دیگه هم هست و اونهم بافر فرستادن ورتکس ها به جی پی یو هست. این کدی که من الان روش دارم کار میکنم ورتکسها رو میفرسه به جی پی یو:
کد:
glGenBuffers(1, &VBO);
glBindBuffer(GL_ARRAY_BUFFER, VBO);
glBufferData(GL_ARRAY_BUFFER, sizeof(vertices), vertices, GL_STATIC_DRAW);
حالا یعنی چی که سینما فوردی هنگام رندر از سی پی یو استفاده میکنه؟ جواب اینجاست: از جی پی یو هم استفاده میکنه. اما برای انکود کردن فایلها از سی پی یو استفاده میکنه.
رندررهایی هستن که اینکار رو به جی پی یو واگذار کنن. ولی در عین حال، سینما فوردی در هنگام رندر داره لحظه به لحظه یک بافر از ورتکس میفرسته به جی پی یو تا توسط زبون شیدر جی پی یو (مثلا ان وی دیا و اینتل برای خودشون زبون جدا دارن) شید شن.
این س
ابردیت جای خوبی برای اینجور سوالهاست.