ambient occlusion что это nvidia

Путеводитель по контрольной панели драйвера NVIDIA

Введение

Предлагаем Вашему вниманию полное описание контрольной панели драйвера. Обращаем ваше внимание на то, что некоторые настройки доступны только при определенных типах применяемого оборудования. В данном обзоре мы постарались отразить все возможные настройки.

Главное окно панели

Главное окно представлено на иллюстрации:

Панель переходов находится слева и позволяет перемещаться по нужным пунктам настройки одним кликом. Меню Вид позволяет включить расширенный вид, который дает наиболее полный доступ ко всем возможностям настроек драйвера или настроить пользовательский вид панели, оставив только те пункты, которыми вы предполагаете пользоваться. Так же, в нижней левой части панели, предоставлен доступ к справочной системе контрольной панели (ссылка «Информация о системе»):

из которой вы сможете узнать о версиях файлов, установленных драйверов и другого программного обеспечения NVIDIA, а также характеристиках видеокарты.

Категория «Параметры 3D»

Регулировка изображений с просмотром

Доступны следующие настройки:

Значение Производительность соответствует максимальной скорости работы и включает в себя настройки: вертикальная синхронизация выключена, все оптимизации (оптимизация трилинейной фильтрации, оптимизация мип-фильтра при анизотропии, оптимизация выборки при анизотропии) включены, отрицательный уровень детализации: запрет отрицательного уровня — включен, фильтрация текстур — «качество», управление анизотропной фильтрацией и сглаживанием осуществляется приложениями.

Значение Баланс имеет следующие настройки: сглаживание — 2х, анизотропная фильтрация — 4х, все оптимизации (оптимизация трилинейной фильтрации, оптимизация мип-фильтра при анизотропии, оптимизация выборки при анизотропии) включены, отрицательный уровень детализации — включен, фильтрация текстур — «качество», вертикальная синхронизация — управляется приложениями.

Значение Качество имеет следующие настройки: оптимизация трилинейной фильтрации — включена, сглаживание — 4х, анизотропная фильтрация — 8х, отрицательный уровень детализации — разрешен, фильтрация текстур — «качество», вертикальная синхронизация — управляется приложениями.

Все режимы снабжены подробными пояснениями к их применению, а вращающийся логотип компании демонстрирует применение тех или иных настроек.

Для более детальной настройки используется окно Управление параметрами 3D.

Управление параметрами 3D

Глобальные параметры

Возможные настройки закладки Глобальные параметры :

Анизотропная фильтрация. Возможные значения — «Выкл.», «Управление от приложения», «2х—16х» (зависит от модели видеоадаптера). Анизотропная фильтрация на сегодня является самой продвинутой техникой компенсирующей искажение пикселей, а в сочетании с трилинейной фильтрацией дает наилучшее качество фильтрации. Активация любого значения кроме «Управление от приложения» позволяет игнорировать настройки приложений. Но не следует забывать, что это очень ресурсоемкая настройка, существенно снижающая производительность.

Вертикальный синхроимпульс. Возможные значения — «Вкл.» и «Выкл», «Использовать настройку 3D приложения». Под вертикальной синхронизацией (совершенно непонятно, зачем NVIDIA отошла от этого термина) понимают синхронизацию вывода изображения с частотой развертки монитора. Включение вертикальной синхронизации позволяет добиться максимально плавного изображения картинки на экране, выключение позволяет получить максимальное кол-во кадров в секунду, нередко приводя к срыву (смещению) изображения из-за того, что видеоадаптер начал прорисовку следующего кадра, тогда как еще не закончен вывод предыдущего. В силу использования двойной буферизации, включение вертикальной синхронизации может вызывать падение количества кадров в секунду и ниже частоты развертки монитора в некоторых приложениях.

Включение масштабируемых текстур. Возможные значения — «Нет» и «Билинейная», «Трилинейная». Нет — не включать масштабируемые текстуры в приложениях, которые их не поддерживают. Билинейная — лучшая производительность за счет падения качества. Трилинейная — хорошее качество изображения с более низкой производительностью. Использовать данную опцию в режиме принудительной билинейной фильтрации крайне не рекомендуется, поскольку качество изображения, получаемое при форсировании опции, просто удручающее.

Затенение фонового освещения. Включение технологии имитации глобального освещения (затенения) Ambient Occlusion. Традиционная модель освещения в 3D графике вычисляет вид поверхности исключительно по её характеристикам и характеристикам источников света. Объекты на пути света отбрасывают тени, но они не влияют на освещение других объектов сцены. Модель глобального освещения увеличивает реалистичность изображения, вычисляя интенсивность света, доходящего до поверхности, причем значение яркости каждой точки поверхности зависит от взаимного расположения других объектов сцены. К сожалению, честный объемный расчет затенения, вызванного объектами, расположенными на пути лучей света, все еще остается за пределами возможностей современного «железа». Поэтому была разработана технология ambient occlusion, позволяющая с помощью шейдеров рассчитывать взаимозатенение объектов в плоскости «виртуальной камеры» при сохранении приемлемой производительности, впервые использованная в игре Crysis. Данная опция позволяет применить эту технологию для изображения игр, не имеющих встроенной поддержки ambient occlusion. Каждая игра требует отдельной адаптации алгоритма, поэтому само включение опции осуществляется в профилях драйвера, а опция панели лишь разрешает использование технологии в целом. Со списком поддерживаемых игр можно ознакомиться на сайте NVIDIA. Поддерживается для графических процессоров G80 (GeForce 8X00) и новее начиная с драйвера 185.81 в Windows Vista и Windows 7. Может снизить производительность на 20-50 %. Возможные значения — «Вкл.» и «Выкл.».

Режим управления электропитанием. Возможные значения — «Адаптивный» (по-умолчанию) и «Максимальная производительность». С видеокартами GeForce 9X00 и более новыми, имеющими разделение на режимы производительности, для создающих небольшую нагрузку на графический процессор игр и программ драйвер не переводит видеокарту в режим производительности 3D. Это поведение можно изменить, выбрав режим «Максимальная производительность», тогда при любом использовании 3D видеокарта будет переходить в 3D режим. Эти функции доступны лишь при иcпользовании драйвера 190.38 и выше в Windows Vista и Windows 7.

Сглаживание — гамма-коррекция. Возможные значения «Вкл.» и «Выкл.». Позволяет выполнять гамма-коррекцию пикселов при сглаживании. Доступна на видеоадаптерах, основанных на графическом процессоре G70 (GeForce 7X00) и новее. Улучшает цветовую гамму приложений.

Сглаживание — прозрачность. Возможные значения — «Выкл.», «Множественная выборка», «Избыточная выборка». Управляет улучшенной технологией сглаживания, позволяющей уменьшить эффект «лесенки» на краях прозрачных текстур. Обращаем ваше внимание на то, что под словосочетанием «Множественная выборка», скрывается более привычный термин «Мультисэмплинг», а под «Избыточная выборка» — «Суперсемплинг». Последний метод имеет наиболее серьезное влияние на производительность видеоадаптера. Опция работоспособна на видеокартах семейства GeForce 6×00 и новее, при использовании драйверов версии 91.45 и выше.

Сглаживание — параметры. Пункт активен только если пункт «Сглаживание — режим» установлен в значение «Увеличение настройки приложения» или «Замещение настроек приложения». Возможные значения — «Управление от приложения» (что равнозначно значению «Управление от приложения» пункта «Сглаживание — режим»), и от 2х до 16х, включая «фирменные» Q/S режимы (зависит от возможностей видеокарты). Данная установка серьезно влияет на производительность. Для слабых карт рекомендуется использование минимальных режимов. Следует отметить, что для режима «Увеличение настройки приложения» эффект будут иметь только варианты 8x, 16x и 16xQ.

Сообщения об ошибках. Определяет, могут ли приложения проверять наличие ошибок рендеринга. Значение по-умолчанию «Выкл.», т.к. многие OpenGL приложения довольно часто проводят такую проверку, что снижает общую производительность.

Фильтрация текстур — анизотропная оптимизация фильтрации. Возможные значения — «Вкл.» и «Выкл.». При её включении драйвер форсирует использование точечного мип-фильтра на всех стадиях, кроме основной. Включение опции несколько ухудшает качество картинки и немного увеличивает производительность.

Фильтрация текстур. Возможные значения — «Высокое качество», «Качество», «Производительность», «Высокая производительность». Позволяет управлять технологией Intellisample. Параметр оказывает существенное влияние на качество изображения и скорость:

Фильтрация текстур — отрицательное отклонение УД (уровня детализации). Возможные значения — «Разрешить» и «Привязка». Для более контрастной фильтрации текстуры в приложениях иногда используется отрицательное значение уровня детализации (LOD ). Это повышает контрастность неподвижного изображения, но на движущихся объектах появляется эффект «шума». Для получения более качественного изображения при использовании анизотропной фильтрации желательно настроить опцию на «привязку», чтобы запретить отрицательного отклонение УД.

Фильтрация текстур — трилинейная оптимизация. Возможные значения — «Вкл.» и «Выкл.». Включение данной опции позволяет драйверу снижать качество трилинейной фильтрации для повышения производительности, в зависимости от выбранного режима Intellisample.

Программные настройки

Закладка имеет два поля:

Выберите программу для настройки.

В этом поле вы можете видеть возможные профили приложений, служащих для замещения глобальных параметров настройки драйвера. При запуске соответствующего исполняемого файла, автоматически активируются настройки для конкретного приложения. Некоторые профили могут содержать настройки, недоступные для изменения пользователями. Как правило, это адаптация драйвера под конкретное приложение или устранение проблем с совместимостью. По умолчанию отображаются только те приложения, которые установлены в системе.

Укажите настройки для этой программы.

В этом поле вы можете изменить настройки для конкретного профиля приложения. Перечень доступных настроек полностью идентичен глобальным параметрам. Кнопка «Добавить» служит для добавления собственных профилей приложений. При её нажатии открывается окно проводника Windows, с помощью которого вы выбираете исполняемый файл приложения. После этого, в поле «Укажите настройки для этой программы» вы сможете выставить персональные настройки для приложения. Кнопка «Удалить» служит для удаления профилей пользовательских приложений. Обращаем ваше внимание, что удалить/изменить изначально присутствующие профили приложений средствами драйвера нельзя, для этого придется воспользоваться сторонними утилитами, такими как nHancer.

Источник

GPU Gems

GPU Gems is now available, right here, online. You can purchase a beautifully printed version of this book, and others in the series, at a 30% discount courtesy of InformIT and Addison-Wesley.

The CD content, including demos and content, is available on the web and for download.

Chapter 17. Ambient Occlusion

The real-time computer graphics community has recently started to appreciate the increase in realism that comes from illuminating objects with complex light distributions from environment maps, rather than using a small number of simple light sources. In the real world, light arrives at surfaces from all directions, not from just a handful of directions to a point or directional light sources, and this noticeably affects their appearance. A variety of techniques have recently been developed to capture real-world illumination (such as on movie sets) and to use it to render objects as if they were illuminated by the light from the original environment, making it possible to more seamlessly merge computer graphics with real scenes. For completely synthetic scenes, these techniques can be applied to improve the realism of rendered images by rendering an environment map of the scene and using it to light characters and other objects inside the scene. Rather than using the map just for perfect specular reflection, these techniques use it to compute lighting for glossy and diffuse surfaces as well.

This chapter describes a simple technique for real-time environment lighting. It is limited to diffuse surfaces, but it is efficient enough for real-time use. Furthermore, this method accurately accounts for shadows due to geometry occluding the environment from the point being shaded. Although the shading values that this technique computes have a number of sources of possible errors compared to some of the more complex techniques recently described in research literature, the technique is relatively easy to implement. (To make it work, you don’t have to understand and implement a spherical harmonics library!) The approach described here gives excellent results in many situations, and it runs interactively on modern hardware.

This method is based on a view-independent preprocess that computes occlusion information with a ray tracer and then uses this information at runtime to compute a fast approximation to diffuse shading in the environment. This technique was originally developed by Hayden Landis (2002) and colleagues at Industrial Light & Magic; it has been used on a number of ILM’s productions (with a non-real-time renderer!).

17.1 Overview

The environment lighting technique we describe has been named ambient occlusion lighting. One way of thinking of the approach is as a «smart» ambient term that varies over the surface of the model according to how much of the external environment can be seen at each point. Alternatively, one can think of it as a diffuse term that supports a complex distribution of incident light efficiently. We will stick with the second interpretation in this chapter.

The basic idea behind this technique is that if we preprocess a model, computing how much of the external environment each point on it can see versus how much of the environment has been occluded by other parts of the model, then we can use that information at rendering time to compute the value of a diffuse shading term. The result is that the crevices of the model are realistically darkened, and the exposed parts of the model realistically receive more light and are thus brighter. The result looks substantially more realistic than if a standard shading model had been used.

This approach can be extended to use environment lighting as the source of illumination, where an environment map that represents incoming light from all directions is used to determine the color of light arriving at each point on the object. For this feature, in addition to recording how much of the environment is visible from points on the model, we also record from which direction most of the visible light is arriving. These two quantities, which effectively define a cone of unoccluded directions out into the scene, can be used together to do an extremely blurred lookup from the environment map to simulate the overall incoming illumination from a cone of directions of interest at a point being shaded.

17.2 The Preprocessing Step

Given an arbitrary model to be shaded, this technique needs to know two things at each point on the model: (1) the «accessibility» at the point—what fraction of the hemisphere above that point is unoccluded by other parts of the model; and (2) the average direction of unoccluded incident light. Figure 17-1 illustrates both of these ideas in 2D. Given a point P on the surface with normal N, here roughly two-thirds of the hemisphere above P is occluded by other geometry in the scene, while one-third is unoccluded. The average direction of incoming light is denoted by B, and it is somewhat to the right of the normal direction N. Loosely speaking, the average color of incident light at P could be found by averaging the incident light from the cone of unoccluded directions around the B vector.

ambient occlusion что это nvidia

Figure 17-1 Computing Accessibility and an Average Direction

This B vector and the accessibility value, which are model dependent but not lighting dependent, can be computed offline in a preprocess with a ray tracer. For the examples in this chapter, the model we used was finely tessellated, so we computed these values at the center of each triangle and then stored values at each vertex that held the average of the values from the adjacent faces. We then passed these per-vertex values through the vertex shader so that they would be interpolated at each pixel for the fragment shader. Alternatively, we could have stored them in texture maps; this would have been preferable if the model had been more coarsely tessellated.

The pseudocode in Listing 17-1 shows our basic approach. At the center of each triangle, we generate a set of rays in the hemisphere centered about the surface normal. We trace each of these rays out into the scene, recording which of them intersect the model—indicating that we wouldn’t receive light from the environment in that direction—and which are unoccluded. We compute the average direction of the unoccluded rays, which gives us an approximation to the average direction of incident light. (Of course, it’s possible that the direction that we compute may in fact be occluded itself; we just ignore this issue.)

Example 17-1. Basic Algorithm for Computing Ambient Occlusion Quantities

An easy way to generate these rays is with rejection sampling: randomly generate rays in the 3D cube from –1 to 1 in x, y, and z, and reject the ones that don’t lie in the unit hemisphere about the normal. The directions that survive this test will have the desired distribution. This approach is shown in the pseudocode in Listing 17-2. More complex Monte Carlo sampling algorithms could also be used to ensure a better-distributed set of sample directions.

Example 17-2. Algorithm for Computing Random Directions with Rejection Sampling

17.3 Hardware-Accelerated Occlusion

It is possible to accelerate the calculation of this occlusion information by using the graphics hardware instead of software ray tracing. Shadow maps provide a fast image-space method of determining whether a point is in shadow. (GeForce FX has special hardware support for rasterizing the depth-only images needed for shadow mapping at high speed.) Instead of shooting rays from each point on the surface, we can reverse the problem and surround the object with a large spherical array of shadow-mapped lights. The occlusion amount at a point on a surface is simply the average of the shadow contributions from each light. We can calculate this average using a floating-point accumulation buffer. For n lights, we render the scene n times, each time moving the shadow-casting light to a different position on the sphere. We accumulate these black-and-white images to form the final occlusion image. At the limit, this simulates a large area light covering the sky.

A large number of lights (128 to 1024) is required for good results, but the performance of modern graphics hardware means this technique can still be faster than ray tracing. The distribution of the lights on the sphere also affects the final quality. The most obvious method is to use polar coordinates, with lights distributed at evenly spaced longitudes and latitudes, but this tends to concentrate too many samples at the poles. Instead, you should use a uniform distribution on the sphere. If the object is standing on a ground plane, a full hemisphere of lights isn’t necessary—a dome or a hemisphere can be used instead.

Another issue that can affect the quality of the final results is shadow-mapping artifacts. These often appear as streaking on the surface at the transition from lit to shadowed. This problem can be alleviated by multiplying the shadowing term by a function of the normal and the light direction that ensures that the side of the surface facing away from the light is always black.

One disadvantage of this method is that for each light, two passes are required: one to generate the shadow map and one to render the shadowed scene, plus the overhead needed to accumulate the image. For n lights, this means 2n passes are required. It may be faster to accumulate the effect of multiple shadow maps in a single pass. Since current hardware supports eight sets of texture coordinates, it is possible to accumulate eight shadows in the shader at once. This means that only n + n/8 renders of the scene would be required in total.

The approach can also be extended to produce the average unoccluded direction, or bent normal. We can use a shader to calculate the direction to the light multiplied by the shadow value, and then copy the result to the RGB output color. The occlusion information can be stored in the alpha channel. We accumulate these RGB normal values in the same way as the occlusion value, and then we normalize the final result to get the average unoccluded normal. Note that a half (16-bit) floating-point accumulation buffer may not have sufficient precision to represent the summation of these vectors accurately.

So far, the technique we have described generates occlusion images in camera space, but often we want to generate textures that store the occlusion information. If the objects we are using have unique texture coordinates (that is, the texture covers their entire surface without overlaps), this is relatively easy. We can unwrap the model with a vertex program that uses the UV texture coordinate as the screen-space position. The calculation proceeds as normal, but instead of rendering the object as normal, we are rendering the rectangular unwrapped mesh. Once this occlusion texture has been generated, it can be used in real-time rendering, as described in the rest of this chapter.

17.4 Rendering with Ambient Occlusion Maps

As an example, we applied this method to a complex model set on a plane. (There are no texture maps in this scene, so that we can see the effect of the method more clearly. Texturing is easily incorporated into this technique, however.) We used 512 rays per triangle to compute the accessibility values and average unoccluded directions for each of 150,000 triangles; the preprocess took approximately four minutes with a software ray tracer on an AMD Athlon 1800XP CPU. We then wrote this information out to disk in a file for use by our demo application. For comparison, Figure 17-2 shows an image of the model with a simple diffuse shading model light by a point light, with no shadows. Note the classic unrealistic computer graphics appearance and lack of shading complexity. For example, the underside of the creature and the inside of its far leg are both too bright.

ambient occlusion что это nvidia

Figure 17-2 Scene Shaded with the Simple Diffuse Shading Model

In Figure 17-3, we shaded the model by setting the color to be the accessibility at each point, as computed by the ray-traced preprocess. Note that crevices under the legs of the model and points on its stomach are darker than exposed regions such as its back, which is almost fully exposed. The harsh transitions from light to dark in Figure 17-2 that were the result of the changing orientation of the surface normal with respect to the point light’s position have been smoothed out, giving a realistic «overcast skylight» effect. There is a very soft shadow beneath the creature on the ground plane, the result of the creature’s body reducing the amount of light arriving at the points beneath it.

ambient occlusion что это nvidia

Figure 17-3 Scene Shaded with Accessibility Information

This shadow helps to ground the model, showing that it is in fact on the ground plane, rather than floating above it, as might be the case in Figure 17-2.

Best of all, shading with the accessibility value doesn’t even require advanced programmable graphics hardware; it can be done with ancient graphics hardware, just by passing appropriate color values with each vertex of the model. As such, it can run at peak performance over a wide range of GPU architectures. If this model had a diffuse texture map, we’d just multiply the texture value by the accessibility for shading it.

17.4.1 Environment Lighting

If programmable graphics hardware is available, we can use the accessibility information in a more sophisticated way to generate more complex shading effects. Here, we compute an approximation of how the model would appear if it were inside a complex real-world environment, using captured illumination from an environment map of the scene. For this example, we used an environment map of Galileo’s tomb, in Florence, shown in Figure 17-4.

ambient occlusion что это nvidia

Figure 17-4 An Environment Map of Galileo’s Tomb, in Latitude-Longitude Format

The basic idea behind the program for shading with such an environment map is this: We would like to use the information that we have so far to compute a good approximation of how much light is arriving at the surface at the point being shaded. The two factors that affect this value are (1) which parts of the hemisphere above the point are unoccluded by geometry between the point and the environment map and (2) what is the incoming light along these directions. Figure 17-5 shows two cases of this scene. On the left, the point being shaded can see only a small fraction of the directions above it, denoted by the direction vector B and the circle indicating a cone of directions; accessibility here is very low. On the right, more light reaches the point, along a greater range of directions.

ambient occlusion что это nvidia

Figure 17-5 Approximating Different Amounts of Visibility

The accessibility value computed in the preprocess tells us what fraction of the hemisphere can see the environment map, and the average visible direction gives us an approximation of the direction around which to estimate the incoming light. Although this direction may point in a direction that is actually occluded (for example, if two separate regions of the hemisphere are unoccluded but the rest are occluded, the average direction may be between the two of them), it usually works well in practice.

The basic fragment shader we used is shown in Listing 17-3. The average direction of incoming light is passed in via the B variable, and the fraction of the hemisphere that was unoccluded is passed in via accessibility; the envlatlong sampler is bound to the environment map in Figure 17-4.

Example 17-3. Fragment Shader for Shading with Accessibility Values and an Environment Map

There are three main steps to the shader. First, we call the latlong() function shown in Listing 17-4 to compute the (u, v) texture coordinates in the latitude-longitude environment map. Second, the computeBlur() function, shown in Listing 17-5, determines the area of the map to blur over for the point that we are shading. Finally, we do the blurred environment map lookup via the variant of the tex2D() function that allows us to pass in derivatives. The derivatives specify the area of the map over which to do texture filtering, giving the average light color inside the cone. This is scaled by the accessibility value and returned. Thanks to mipmapping, computing blurred regions of large sections of the environment map can be done very efficiently in the graphics hardware.

Example 17-4. The latlong() Function Definition

For clarity, we have listed separately the two subroutines that the fragment shader uses. First is latlong(), which takes a 3D direction and finds the 2D texture position that the direction should map to for the latitude-longitude map. Because the hardware does not support latitude-longitude maps directly, we need to do this computation ourselves.

Example 17-5. The computeBlur() Function Definition

However, because inverse trigonometric functions are computationally expensive, in our implementation we stored theta and phi values in a 256×256 cube-map texture with signed eight-bit components and did a single cube-map lookup in place of the entire latlong() function. This modification saved approximately fifty fragment program instructions in the compiled result, with no loss in quality in the final image.

The only other tricky part of this shader is computing how much of the environment map to filter over. (Recall Figure 17-5, where the point on the left receives light from a smaller cone of directions than the point on the right does.) We make a very rough approximation of the area to filter over in the computeBlur() function; it just captures the first-order effect that increased accessibility should lead to an increased filter area.

The result of applying this shader to the model is shown in Figure 17-6. The shader compiles to approximately ten GPU instructions, and the scene renders at real-time rates on modern GPUs.

ambient occlusion что это nvidia

Figure 17-6 Scene Shaded with Accessibility Information and Illumination from an Environment Map

17.5 Conclusion

The environment lighting technique that we describe here employs many approximations, but it works well in practice and has proven itself in rendering for movie effects. The method separates the problem into a relatively expensive preprocess that computes just the right information needed to do fast shading at rendering time. The preprocess does not depend on the lighting environment map, so dynamic illumination from the scene can easily be used. Because a very blurred version of the scene’s environment map is used, it doesn’t necessarily need to be re-rendered for each frame. The visual appearance of objects shaded with this method is substantially more realistic than if standard graphics lighting models are used.

Texture-mapped surfaces and standard light sources are easily incorporated into this method. Even better results can be had with a small number of standard point or directional lights to cast hard shadows, provide «key» lighting, and generate specular highlights.

While many applications of environment lighting have focused on the advantages of «high-dynamic-range» environment maps (that is, maps with floating-point texel values, thus encoding a wide range of intensities), this method works well even with standard eight-bit-per-channel texture maps. Because it simulates reflection only from diffuse surfaces—it averages illumination over many directions—it’s less important to accurately represent bright light from a small set of directions, as is necessary for more glossy reflections.

We have not addressed animation in this chapter. As an animated character model changes from one pose to another, obviously the occlusion over the entire model changes. We believe that computing the occlusion information for a series of reference poses and interpolating between the results according to the character’s pose would work well in practice, but we have not implemented this improvement here. However, NVIDIA’s «Ogre» demo used this approach successfully. See Figure 17-7.

ambient occlusion что это nvidia

Figure 17-7 The Ogre Character

17.6 Further Reading

This section describes alternative approaches to environment lighting in more general ways. In particular, ambient occlusion can be understood in the context of spherical harmonic lighting techniques; it is an extreme simplification that uses just the first spherical harmonic to represent reflection.

Zhukov, S., A. Iones, and G. Kronin. 1998. «An Ambient Light Illumination Model.» In Proceedings of Eurographics Rendering Workshop ’98, pp. 45–56. Zhukov et al. described a similar «smart ambient» method based on a ray-traced preprocess in this article, though they didn’t use it for environment lighting.

Blinn, J. F., and Newell, M. E. 1976. «Texture and Reflection in Computer Generated Images.» Communications of the ACM 19(10)(October 1976), pp. 542–547. The idea of using environment maps for lighting specular objects was first described in this article.

Miller, Gene S., and C. Robert Hoffman. 1984. «Illumination and Reflection Maps: Simulated Objects in Simulated and Real Environments.» Course notes for Advanced Computer Graphics Animation, SIGGRAPH 84. The application to lighting nonspecular objects was first described in these course notes.

Debevec, Paul. 1998. «Rendering Synthetic Objects into Real Scenes: Bridging Traditional and Image-Based Graphics with Global Illumination and High Dynamic Range Photography.» In Proceedings of SIGGRAPH 98, pp. 189–198. Interest in environment lighting grew substantially after this paper appeared.

Cohen, Michael, and Donald P. Greenberg. 1985. «The Hemi-Cube: A Radiosity Solution for Complex Environments.» This paper was the first to describe the hemi-cube algorithm for radiosity, another approach for the occlusion preprocess that would easily make use of graphics hardware for that step.

A series of recent SIGGRAPH papers by Ramamoorthi and Hanrahan and by Sloan et al. has established key mathematical principles and algorithms based on spherical harmonics for fast environment lighting.

Copyright

Many of the designations used by manufacturers and sellers to distinguish their products are claimed as trademarks. Where those designations appear in this book, and Addison-Wesley was aware of a trademark claim, the designations have been printed with initial capital letters or in all capitals.

The authors and publisher have taken care in the preparation of this book, but make no expressed or implied warranty of any kind and assume no responsibility for errors or omissions. No liability is assumed for incidental or consequential damages in connection with or arising out of the use of the information or programs contained herein.

The publisher offers discounts on this book when ordered in quantity for bulk purchases and special sales. For more information, please contact:

For sales outside of the U.S., please contact:

Visit Addison-Wesley on the Web: www.awprofessional.com

Library of Congress Control Number: 2004100582

GeForce™ and NVIDIA Quadro ® are trademarks or registered trademarks of NVIDIA Corporation.
RenderMan ® is a registered trademark of Pixar Animation Studios.
«Shadow Map Antialiasing» © 2003 NVIDIA Corporation and Pixar Animation Studios.
«Cinematic Lighting» © 2003 Pixar Animation Studios.
Dawn images © 2002 NVIDIA Corporation. Vulcan images © 2003 NVIDIA Corporation.

Copyright © 2004 by NVIDIA Corporation.

All rights reserved. No part of this publication may be reproduced, stored in a retrieval system, or transmitted, in any form, or by any means, electronic, mechanical, photocopying, recording, or otherwise, without the prior consent of the publisher. Printed in the United States of America. Published simultaneously in Canada.

For information on obtaining permission for use of material from this work, please submit a written request to:

Pearson Education, Inc.
Rights and Contracts Department
One Lake Street
Upper Saddle River, NJ 07458

Text printed on recycled and acid-free paper.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *