چطوری میشه بیشتر از 8 منبع نور درست کرد؟
(glEnable(GL_LIGHT0
(glEnable(GL_LIGHT1
(glEnable(GL_LIGHT2
(glEnable(GL_LIGHT3
(glEnable(GL_LIGHT4
(glEnable(GL_LIGHT5
(glEnable(GL_LIGHT6
(glEnable(GL_LIGHT7
چطوری میشه بیشتر از 8 منبع نور درست کرد؟
(glEnable(GL_LIGHT0
(glEnable(GL_LIGHT1
(glEnable(GL_LIGHT2
(glEnable(GL_LIGHT3
(glEnable(GL_LIGHT4
(glEnable(GL_LIGHT5
(glEnable(GL_LIGHT6
(glEnable(GL_LIGHT7
سلام
برای اینکار تو حالت fixed function باید کارت گرافیکیت بیشتر از هشت تا رو پشتیبانی کنه. برای این منظورم باید OpenGL 1.2 به بعد رو داخل برنامت مقدار دهی اولیه کنی. از سایت www,opengl.org از قسمت sdk کتابخونه glew رو بگیر و دستور زیر رو بعد از ساخت پنجره و محتوا تایپ کن:
glewInit();
اگر کارت گرافیکیت بیشتر از هشت تا رو ساپورت نکنه تنها راه استفاده از شیدرها و یا FAKE LIGHT هستش. هیچ وقت بیشتر از چهار نور دینامیک استفاده نکن چون سرعتت خیلی پایین میاد.
یه راه دیگه هم هستش و اون استفاده از بافر انباره هستش یعنی یه بار تمام صحنه رو با هشت تا میکشی میذاریش توی بافر انباره و یه باز دیگه با تعداد بیشتر میکشیش و این دفعه اون رو با انباره جمع میکنی و بعد میفرستی روی بافر فریم.
اگه تعداد نورت خیلی زیاد هستش. بهترین کاری که میتونی انجام بدی استفاده از defred shading هستش.