Куб карталау – компьютерлік графикада кеңістікті бейнелеу әдісі. 6 жақтан тұратын кубқа проекция жасап, сақтайды. Бұрылыс, тиімділік артықшылықтары бар.
Ағылшыншамен салыстырыңыз: абзацты басыңыз — түпнұсқа терезеде ашылады. Абзац астындағы EN түймесі оны мәтін ішінде көрсетеді.
Мазмұны
Кіріспе
Компьютерлік графикада қоршаған ортаны карталау әдісі
Method of environment mapping in computer graphics
Компьютерлік графикада куб карталау – карта пішіні ретінде кубтың алты жағын пайдаланатын қоршаған ортаны карталау әдісі. Қоршаған орта кубтың қабырғаларына проекцияланып, алты шаршы текстура түрінде сақталады немесе бір текстураның алты бөлігіне жайылады. Куб картасы алдымен көзқарас нүктесінен сахнаны алты рет рендерлеу арқылы жасалады, көрініс фрустумы әрбір куб жағын бейнелейтін 90 градусқа тең болады. Немесе егер қоршаған орта алдымен сфераға проекцияланған деп есептелсе, онда кубтың әр жағы сфераның гномондық проекциясы болып табылады. Көп жағдайда куб карталау шар карталаудан артық көрінеді, себебі ол шар карталауға тән бейне бұрмалануы, көзқарасқа тәуелділік және есептеу тиімсіздігі сияқты көптеген проблемаларды жояды. Сонымен қатар, куб карталау шар карталауға қарағанда рефлексияны нақты уақыт режимінде көрсетуге қабілеттілігі жоғары, себебі тиімсіздік пен көзқарасқа тәуелділік шар карталаудың тұрақты өзгеріп отыратын көзқарас нүктесінде қолданылуын шектейді. Куб карталаудың түрлері 360 градустық бейне проекциясында да жиі қолданылады.
In computer graphics, cube mapping is a method of environment mapping that uses the six faces of a cube as the map shape. The environment is projected onto the sides of a cube and stored as six square textures, or unfolded into six regions of a single texture. The cube map is generated by first rendering the scene six times from a viewpoint, with the views defined by a 90 degree view frustum representing each cube face. Or if the environment is first considered to be projected onto a sphere, then each face of the cube is its gnomonic projection. In the majority of cases, cube mapping is preferred over the older method of sphere mapping because it eliminates many of the problems that are inherent in sphere mapping such as image distortion, viewpoint dependency, and computational inefficiency. Also, cube mapping provides a much larger capacity to support real time rendering of reflections relative to sphere mapping because the combination of inefficiency and viewpoint dependency severely limits the ability of sphere mapping to be applied when there is a consistently changing viewpoint. Variants of cube mapping are also commonly used in 360 video projection.
Тарих
Кюб картасын алғаш рет 1986 жылы Нед Грин "Қоршаған ортаны карталау және әлемдік проекциялардың басқа да қолданбалары" атты мақаласында ұсынды, бұл Джим Блинн мен Мартин Ньюэлл қоршаған ортаны карталауды алғаш ұсынғаннан кейін он жыл өткен соң болды. Дегенмен, бір мезгілде алты текстуралық суретке қолжетімділікке қатысты аппараттық шектеулер, одан әрі технологиялық жетістіктерсіз кюб картасын іске асыруды қиын етті. Бұл мәселе 1999 жылы Nvidia GeForce 256 құрылғысының шығуымен шешілді. Nvidia аппараттық құралдағы кюб картасын GeForce 256-ның революциялық бейне сапасының мүмкіндігі ретінде жариялады, бұл дамытушыларға дәл, нақты уақыт режимінде шағылыстар жасауға мүмкіндік береді. Аппараттық құралда жеделдетілген кюб орта картасы дамытушылардың шығармашылығын шағылыстар мен специкулярлық жарық эффекттерін пайдаланып, қызықты және әсерлі орта құруға бағыттайды. Бүгінде кюб картасы әртүрлі графикалық қолданбаларда қоршаған ортаны карталаудың танымал әдісі ретінде қолданылуда.
Cube mapping was first proposed in 1986 by Ned Greene in his paper “Environment Mapping and Other Applications of World Projections”, ten years after environment mapping was first put forward by Jim Blinn and Martin Newell. However, hardware limitations on the ability to access six texture images simultaneously made it infeasible to implement cube mapping without further technological developments. This problem was remedied in 1999 with the release of the Nvidia GeForce 256. Nvidia touted cube mapping in hardware as “a breakthrough image quality feature of GeForce 256 that will allow developers to create accurate, real time reflections. Accelerated in hardware, cube environment mapping will free up the creativity of developers to use reflections and specular lighting effects to create interesting, immersive environments.” Today, cube mapping is still used in a variety of graphical applications as a favored method of environment mapping.
Артықшылықтар
Куб картасын жасау, қоршаған ортаны карталаудың басқа әдістеріне қарағанда, оның салыстырмалы қарапайымдылығы себепті артықшылыққа ие. Сонымен қатар, куб картасы сәулелерді іздеу арқылы алынған нәтижелерге ұқсас нәтижелер береді, бірақ есептеулер жағынан әлдеқайда тиімді. Сапаның шамалы төмендеуі тиімділіктің үлкен артықшылықтарымен өтеледі. Куб картасын жасаудан бұрын, шар картасының көптеген ішкі кемшіліктері болды, олар оны көптеген қолданбалар үшін тиімсіз етті. Шар карталау көру бұрышына тәуелді, яғни әр көру бұрышы үшін әртүрлі текстура қажет. Сондықтан, көру бұрышы өзгеріп отыратын қолданбаларда, әр жаңа көру бұрышы үшін шар картасын динамикалық түрде жасау қажет (немесе әр көру бұрышы үшін картаны алдын ала жасау қажет). Сонымен қатар, шардың бетіне карталанған текстура созылуы және қысылуы керек, ал бұрылыстар мен бұрмаланулар (әсіресе шардың жиегі бойымен) – осының тікелей салдары. Бұл кескіннің кемшіліктерін «алдын ала созу» сияқты белгілі бір тәсілдер мен әдістерді қолдану арқылы азайтуға болады, бірақ бұл шар картасына күрделіліктің тағы бір деңгейін қосады. Параболоидты карталау шар карталаудың шектеулерін жақсартады, алайда оған екі рет рендеринг қажет, сондай-ақ арнайы бейнелерді бұрмалау операциялары мен күрделі есептеулер де қажет. Керісінше, куб картасына тек бір рет рендеринг жеткілікті, және оның қарапайым табиғатынан әзірлеушілерге түсіну және жасау өте оңай. Сонымен қатар, куб картасы шар және параболоидты карталармен салыстырғанда текстуралық кескіннің толық ажыратымдылығын пайдаланады, бұл сондай-ақ бірдей сапаға қол жеткізу үшін төменгі ажыратымдылықтағы кескіндерді пайдалануға мүмкіндік береді. Куб картасының тігістерін өңдеу мәселелі болғанымен, тігіс мінез-құлқын басқару және біркелкі бейнелеу үшін алгоритмдер әзірленді.
Cube mapping is preferred over other methods of environment mapping because of its relative simplicity. Also, cube mapping produces results that are similar to those obtained by ray tracing, but is much more computationally efficient – the moderate reduction in quality is compensated for by large gains in efficiency. Pre dating cube mapping, sphere mapping has many inherent flaws that made it impractical for most applications. Sphere mapping is view dependent, meaning that a different texture is necessary for each viewpoint. Therefore, in applications where the viewpoint is mobile, it would be necessary to dynamically generate a new sphere mapping for each new viewpoint (or, to pre generate a mapping for every viewpoint). Also, a texture mapped onto a sphere's surface must be stretched and compressed, and warping and distortion (particularly along the edge of the sphere) are a direct consequence of this. Although these image flaws can be reduced using certain tricks and techniques like “pre stretching”, this just adds another layer of complexity to sphere mapping. Paraboloid mapping provides some improvement on the limitations of sphere mapping, however it requires two rendering passes in addition to special image warping operations and more involved computation. Conversely, cube mapping requires only a single render pass, and due to its simple nature, is very easy for developers to comprehend and generate. Also, cube mapping uses the entire resolution of the texture image, compared to sphere and paraboloid mappings, which also allows it to use lower resolution images to achieve the same quality. Although handling the seams of the cube map is a problem, algorithms have been developed to handle seam behavior and result in a seamless reflection.
Кемшіліктер
Егер жаңа нысан немесе жаңа жарық сахнаға енгізілсе, немесе ондағы көрініс тапқан нысан қозғалса немесе қандай да бір өзгеріске ұшыраса, онда көлеңке өзгеріп, куб картасы қайтадан көрсетілуі керек. Егер куб картасы сахнада қозғалатын нысанға бекітілсе, онда ол жаңа позициядан да қайтадан көрсетілуі тиіс.
If a new object or new lighting is introduced into scene or if some object that is reflected in it is moving or changing in some manner, then the reflection changes and the cube map must be re rendered. When the cube map is affixed to an object that moves through the scene then the cube map must also be re rendered from that new position.
Тұрақты спекулярлық жарықтар
Компьютерлік көмекпен жобалау (CAD) бағдарламалары 3D нысандарды рендерингтегенде беттің қисықтығын көрсету үшін көкжиекті жарықтарды визуалды белгі ретінде пайдаланады. Дегенмен, көптеген CAD бағдарламалары көкжиекті жарықтарды іріктеуде қиындықтарға тап болады, себебі көкжиекті жарық есептеулері объектіні бейнелеу үшін қолданылатын тордың төбелерінде ғана жүзеге асырылады, ал бетіндегі жарықты бағалау үшін интерполяция қолданылады. Егер тордың төбелері жеткілікті тығыз болмаса, көкжиекті жарықтандырудың толыққанды үлгісі алынбайды. Бұл өз кезегінде тордың төбелерінен қашықтығына пропорционалды жарықтығы бар көкжиекті жарықтарға әкеліп соғады, нәтижесінде қисықтықты көрсететін визуалды белгілердің дұрыстығы төмендейді. Өкінішке орай, бұл мәселені тек торды тығыздау арқылы шешу мүмкін емес, өйткені бұл объектіні рендерингтеу тиімділігін айтарлықтай төмендетеді. Кюб карталары тұрақты көкжиекті жарықтарды рендерингтеу үшін қарапайым және тиімді шешім ұсынады. Көптеген көкжиекті жарықтарды кюб картасының текстурасына енгізуге болады, содан кейін беттің шағылысу векторы бойынша интерполяциялау арқылы координаттарды алуға болады. Жеке төбелерде жарықтандыруды есептеумен салыстырғанда, бұл әдіс қисықтықты дәлірек көрсететін таза нәтижелер береді. Бұл әдістің тағы бір артықшылығы – оның жақсы масштабталу қабілеті, себебі қосымша көкжиекті жарықтарды рендеринг құнын арттырмай текстураға енгізуге болады. Алайда, бұл тәсілдің шектеуі бар: жарық көздері алыс немесе шексіз болуы керек, бірақ қауқаптыққа орай, бұл көбінесе CAD бағдарламаларында осылай болады.
Computer aided design (CAD) programs use specular highlights as visual cues to convey a sense of surface curvature when rendering 3D objects. However, many CAD programs exhibit problems in sampling specular highlights because the specular lighting computations are only performed at the vertices of the mesh used to represent the object, and interpolation is used to estimate lighting across the surface of the object. Problems occur when the mesh vertices are not dense enough, resulting in insufficient sampling of the specular lighting. This in turn results in highlights with brightness proportionate to the distance from mesh vertices, ultimately compromising the visual cues that indicate curvature. Unfortunately, this problem cannot be solved simply by creating a denser mesh, as this can greatly reduce the efficiency of object rendering. Cube maps provide a fairly straightforward and efficient solution to rendering stable specular highlights. Multiple specular highlights can be encoded into a cube map texture, which can then be accessed by interpolating across the surface's reflection vector to supply coordinates. Relative to computing lighting at individual vertices, this method provides cleaner results that more accurately represent curvature. Another advantage to this method is that it scales well, as additional specular highlights can be encoded into the texture at no increase in the cost of rendering. However, this approach is limited in that the light sources must be either distant or infinite lights, although fortunately this is usually the case in CAD programs.
Skybox-тар
Текше картасының ең жетілген қолданылуы, әлдебір алдын ала көрсетілген панорамалық аспан суреттерін жасау болар, олар кейін графикалық жүйеде текшенің беттері ретінде, практикалық түрде шексіз қашықтықта, текшенің ортасында орналасқан қарау нүктесімен көрсетіледі. Графикалық жүйе арқылы жасалған текше беттерінің перспективалық проекциясы, текше картасын жасау үшін ортаны проекциялаудың әсерін жояды, соның салдарынан көрермен өзін аспан қорабын (skybox) жасау үшін пайдаланылған көрініспен қоршалғандай сезінеді. Бұл техника бейне ойындарда кеңінен қолданыс тапты, себебі ол дизайнерлерге ойынға күрделі (бірақ зерттеуге болмайтын) ортаны, дерлік ешқандай өнімділік шығындарына соқтырмай қосуға мүмкіндік береді.
Perhaps the most advanced application of cube mapping is to create pre rendered panoramic sky images which are then rendered by the graphical engine as faces of a cube at practically infinite distance with the view point located in the center of the cube. The perspective projection of the cube faces done by the graphics engine undoes the effects of projecting the environment to create the cube map, so that the observer experiences an illusion of being surrounded by the scene which was used to generate the skybox. This technique has found a widespread use in video games since it allows designers to add complex (albeit not explorable) environments to a game at almost no performance cost.
Шатырдың жарықтандыруы
Кюб карталары сыртқы жарықтандыруды дәл модельдеуге көмектеседі. Күн сәулесін бір ғана шексіз жарық ретінде қарастыру сыртқы жарықтандыруды әлдеқайда қарапайымдап, шынайы емес жарықтандыруға әкеп соқтырады. Күннен көп жарық келгенімен, атмосферадағы сәулелердің шашырауы бүкіл аспанды жарық көзі ретінде әрекет етеді (әдетте аспан жарығы деп аталады). Бірақ, кюб картаны пайдалану арқылы аспан жарығынан келетін диффузиялық жарықтың үлесін анықтауға болады. Қоршаған орта карталарынан өзгеше, онда шағылыс векторы қолданылады, бұл әдіс беттік нормаль векторына сүйене отырып кюб картаға қол жеткізеді, аспан жарығынан келетін диффузиялық жарықтың жылдам шамасын қамтамасыз етеді. Бұл әдістің бір кемшілігі – аспан жарығын дұрыс бейнелеу үшін кюб карталарды есептеу өте күрделі; соңғы процестердің бірі – кюб картадан төмен жиілікті диффузиялық жарықты ең жақсы көрсететін сфералық гармоникалық негізді есептеу. Дегенмен, аспан жарығын тиімді модельдеу үшін көптеген зерттеулер жүргізілді.
Cube maps can be useful for modelling outdoor illumination accurately. Simply modelling sunlight as a single infinite light oversimplifies outdoor illumination and results in unrealistic lighting. Although plenty of light does come from the sun, the scattering of rays in the atmosphere causes the whole sky to act as a light source (often referred to as skylight illumination). However, by using a cube map the diffuse contribution from skylight illumination can be captured. Unlike environment maps where the reflection vector is used, this method accesses the cube map based on the surface normal vector to provide a fast approximation of the diffuse illumination from the skylight. The one downside to this method is that computing cube maps to properly represent a skylight is very complex; one recent process is computing the spherical harmonic basis that best represents the low frequency diffuse illumination from the cube map. However, a considerable amount of research has been done to effectively model skylight illumination.
Динамикалық шағылысу
Негізгі ортаны карталау статикалық куб картасын пайдаланады, бірақ объекті жылжытылып немесе бұрмаланса да, шағылысқан орта тұрақты болып қалады. Дегенмен, куб картасының текстурасы динамикалық түрде өзгеретін ортаны көрсету үшін үнемі жаңартылуы мүмкін (мысалы, желде қозғалған ағаштар). Динамикалық шағылыстарды жасаудың қарапайым, бірақ қымбат жолы – әр кадр үшін орындалу барысында куб карталарын құру. Бұл қосымша рендеринг қадамдары болғандықтан статикалық карталаудан әлдеқайда тиімсіз болғанымен, оны интерактивті жылдамдықпен орындауға болады. Алайда, мұндай әдіс бірнеше шағылыстыратын объектілер болғанда тиімді болып көрінбейді. Әдетте, әрбір шағылыстыратын объекті үшін жеке динамикалық орта картасы қажет. Егер шағылыстыратын объектілер бір-бірін шағылыстыра алса, бұл қиындықтарды күшейте түседі. Динамикалық куб карталары сәулелерді іздеу арқылы алынатын әсерлерге ұқсас рекурсивті түрде жасалуы мүмкін.
Basic environment mapping uses a static cube map although the object can be moved and distorted, the reflected environment stays consistent. However, a cube map texture can be consistently updated to represent a dynamically changing environment (for example, trees swaying in the wind). A simple yet costly way to generate dynamic reflections, involves building the cube maps at runtime for every frame. Although this is far less efficient than static mapping because of additional rendering steps, it can still be performed at interactive rates. Unfortunately, this technique does not scale well when multiple reflective objects are present. A unique dynamic environment map is usually required for each reflective object. Also, further complications are added if reflective objects can reflect each other dynamic cube maps can be recursively generated approximating the effects normally generated using raytracing.
Жалпы жарықтандыру
2002 жылы ICCVG конференциясында куб картасы дерек құрылымын қолдана отырып, интерактивті жылдамдықпен жаһандық жарықтандыруды есептеу алгоритмі таныстырылды.
An algorithm for global illumination computation at interactive rates using a cube map data structure, was presented at ICCVG 2002.
Жобалау текстуралары
Видеоойындарда кеңінен қолданылған тағы бір мүмкіндік – проекциялық текстуралық бейнелеу. Ол қоршаған ортаның бейнелерін айналағы көрініске проекциялау үшін куб карталарын пайдаланады; мысалы, нүктелік жарық көзі куб картасына байланыстырылады, ол фонарь қоршауының ішінде немесе жарық сүзгіленетін терезе жақтауы арқылы түсірілген панорамалық сурет болып табылады. Бұл ойын жасаушыға көрініс геометриясын күрделілендірмей немесе қымбат нақты уақыт көлеңке көлемін есептемей-ақ нақты жарықтандыруға қол жеткізуге мүмкіндік береді.
Another application which found widespread use in video games is projective texture mapping. It relies on cube maps to project images of an environment onto the surrounding scene; for example, a point light source is tied to a cube map which is a panoramic image shot from inside a lantern cage or a window frame through which the light is filtering. This enables a game developer to achieve realistic lighting without having to complicate the scene geometry or resort to expensive real time shadow volume computations.