130:
200:
392:
122:
39:
468:
257:
matrix multiplication to map those β1 to 1 values to 0 to 1, which are more usual coordinates for depth map (texture map) lookup. This scaling can be done before the perspective division, and is easily folded into the previous transformation calculation by multiplying that matrix with the following:
92:
If you looked out from a source of light, all the objects you can see would appear in light. Anything behind those objects, however, would be in shadow. This is the basic principle used to create a shadow map. The light's view is rendered, storing the depth of every surface it sees (the shadow map).
190:
coordinates with axis X and Y to represent its geometric shape on screen, these vertex coordinates will match up with the corresponding edges of the shadow parts within the shadow map (depth map) itself. The second step is the depth test which compares the object z values against the z values from
536:
or shadow continuity glitches. A simple way to overcome this limitation is to increase the shadow map size, but due to memory, computational or hardware constraints, it is not always possible. Commonly used techniques for real-time shadow mapping have been developed to circumvent this limitation.
164:
In many implementations, it is practical to render only a subset of the objects in the scene to the shadow map to save some of the time it takes to redraw the map. Also, a depth offset which shifts the objects away from the light may be applied to the shadow map rendering in an attempt to resolve
448:
implementation, this test would be done at the fragment level. Also, care needs to be taken when selecting the type of texture map storage to be used by the hardware: if interpolation cannot be done, the shadow will appear to have a sharp, jagged edge (an effect that can be reduced with greater
31:
544:, several solutions have been developed, either by doing several lookups on the shadow map, generating geometry meant to emulate the soft edge or creating non-standard depth shadow maps. Notable examples of these are Percentage Closer Filtering, Smoothies, and Variance Shadow maps.
375:
160:
This depth map must be updated any time there are changes to either the light or the objects in the scene, but can be reused in other situations, such as those where only the viewing camera moves. (If there are multiple lights, a separate depth map must be used for each light.)
100:, but the shadow map can be a faster alternative depending on how much fill time is required for either technique in a particular application and therefore may be more suitable to real-time applications. In addition, shadow maps do not require the use of an additional
169:
problems where the depth map value is close to the depth of a surface being drawn (i.e., the shadow-casting surface) in the next step. Alternatively, culling front faces and only rendering the back of objects to the shadow map is sometimes used for a similar result.
152:
From this rendering, the depth buffer is extracted and saved. Because only the depth information is relevant, it is common to avoid updating the color buffers and disable all lighting and texture calculations for this rendering, to save drawing time. This
112:
Rendering a shadowed scene involves two major drawing steps. The first produces the shadow map itself, and the second applies it to the scene. Depending on the implementation (and the number of lights), this may require two or more drawing passes.
479:
are available, the depth map test may be performed by a fragment shader which simply draws the object in shadow or lighted depending on the result, drawing the scene in a single pass (after an initial earlier pass to generate the shadow map).
263:
500:) this should technically be done using only the ambient component of the light, but this is usually adjusted to also include a dim diffuse light to prevent curved surfaces from appearing flat in shadow.
383:, or other graphics hardware extension, this transformation is usually applied at the vertex level, and the generated value is interpolated between other vertices and passed to the fragment level.
452:
It is possible to modify the depth map test to produce shadows with a soft edge by using a range of values (based on the proximity to the edge of the shadow) rather than simply pass or fail.
207:
To test a point against the depth map, its position in the scene coordinates must be transformed into the equivalent position as seen by the light. This is accomplished by a
65:
in 1978, in a paper entitled "Casting curved shadows on curved surfaces." Since then, it has been used both in pre-rendered and realtime scenes in many console and PC games.
532:
One of the key disadvantages of real-time shadow mapping is that the size and depth of the shadow map determine the quality of the final shadows. This is usually visible as
1167:
218:
The matrix used to transform the world coordinates into the light's viewing coordinates is the same as the one used to render the shadow map in the first step (under
1083:
182:
viewpoint, applying the shadow map. This process has three major components. The first step is to find the coordinates of the object as seen from the light, as a
93:
Next, the regular scene is rendered comparing the depth of every point drawn (as if it were being seen by the light, rather than the eye) to this depth map.
1364:
510:
to combine their effect with the lights already drawn. (Each of these passes requires an additional previous pass to generate the associated shadow map.)
650:
104:
and can be modified to produce shadows with a soft edge. Unlike shadow volumes, however, the accuracy of a shadow map is limited by its resolution.
763:
706:
441:) location falls outside the depth map, the programmer must either decide that the surface should be lit or shadowed by default (usually lit).
540:
Also notable is that generated shadows, even if aliasing free, have hard edges, which is not always desirable. In order to emulate real world
1753:
1726:
942:
926:
575:
370:{\displaystyle {\begin{bmatrix}0.5&0&0&0.5\\0&0.5&0&0.5\\0&0&0.5&0.5\\0&0&0&1\end{bmatrix}}}
1769:
1373:
62:
503:
Enable the depth map test and render the scene lit. Areas where the depth map test fails will not be overwritten and will remain shadowed.
916:
1493:
843:
1075:
830:
537:
These include
Cascaded Shadow Maps, Trapezoidal Shadow Maps, Light Space Perspective Shadow maps, or Parallel-Split Shadow maps.
489:), which usually does not allow a choice between two lighting models (lit and shadowed), and necessitate more rendering passes:
1357:
644:
1616:
1417:
1273:
745:
483:
If shaders are not available, performing the depth map test must usually be implemented by some hardware extension (such as
141:
as wide as its desired angle of effect (it will be a sort of square spotlight). For directional light (e.g., that from the
1741:
1731:
1621:
1440:
459:. The picture above captioned "visualization of the depth map projected onto the scene" is an example of such a process.
1736:
1601:
1541:
541:
1316:
455:
The shadow mapping technique can also be modified to draw a texture onto the lit regions, simulating the effect of a
1529:
1350:
1337:
651:
https://developer.nvidia.com/gpugems/gpugems3/part-ii-light-and-shadows/chapter-8-summed-area-variance-shadow-maps
1227:
1202:
212:
137:
The first step renders the scene from the light's point of view. For a point light source, the view should be a
1307:
764:
https://web.archive.org/web/20101208212121/http://visual-computing.intel-research.net/art/publications/sdsm/
707:
https://web.archive.org/web/20101208213624/http://visual-computing.intel-research.net/art/publications/avsm/
223:
183:
146:
1748:
1698:
1663:
1641:
1636:
819:
669:
576:
http://developer.download.nvidia.com/SDK/10.5/opengl/src/cascaded_shadow_maps/doc/cascaded_shadow_maps.pdf
496:
249:) falls between β1 and 1 (if it is visible from the light view). Many implementations (such as OpenGL and
179:
138:
1591:
1570:
1514:
1147:
1047:
1005:
963:
888:
208:
191:
the depth map, and finally, once accomplished, the object must be drawn either in shadow or in light.
1474:
1460:
1404:
1327:
852:
performs the shadow test in eye-space rather than light-space to keep texture access more sequential.
58:
1606:
1534:
1422:
638:
569:
187:
1668:
1656:
1503:
1498:
1450:
1279:
1104:
619:
871:
751:
426:) location, the object is considered to be behind an occluding object and should be marked as a
1718:
1611:
1596:
1412:
1269:
922:
769:
519:
507:
1322:
1790:
1703:
1693:
1575:
1563:
1261:
733:
645:
http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.104.2569&rep=rep1&type=pdf
1524:
1389:
1381:
1160:
1060:
1018:
976:
901:
746:
http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.59.3376&rep=rep1&type=pdf
727:
632:
456:
411:
value corresponds to its associated depth, which can now be tested against the depth map.
222:
this is the product of the modelview and projection matrices). This will produce a set of
81:
757:
215:, but a second set of coordinates must be generated to locate the object in light space.
1133:
775:
1129:
824:
101:
681:
484:
475:
Drawing the scene with shadows can be done in several different ways. If programmable
1784:
1678:
1552:
1482:
809:
721:
700:
600:
229:
97:
675:
17:
1683:
1646:
1631:
1626:
1546:
1487:
430:, to be drawn in shadow by the drawing process. Otherwise, it should be drawn lit.
1283:
588:
1258:
Proceedings of the 2006 symposium on
Interactive 3D graphics and games - SI3D '06
1033:
1651:
1519:
1455:
1332:
1323:
Riemer's step-by-step tutorial implementing Shadow
Mapping with HLSL and DirectX
815:
606:
73:
166:
991:
594:
1265:
849:
418:
value is greater than the value stored in the depth map at the appropriate (
154:
1253:
407:
values usually correspond to a location in the depth map texture, and the
1509:
533:
250:
493:
Render the entire scene in shadow. For the most common lighting models (
1558:
670:
http://developer.download.nvidia.com/shaderlibrary/docs/shadow_PCSS.pdf
129:
687:
211:. The location of the object on the screen is determined by the usual
38:
1688:
1445:
1311:
1108:
949:
515:
476:
445:
380:
219:
54:
1342:
199:
915:
Akenine-Mo Μller, Tomas; Haines, Eric; Hoffman, Naty (2018-08-06).
391:
1708:
1394:
466:
390:
198:
128:
121:
120:
69:
37:
29:
739:
1432:
712:
639:
https://doclib.uhasselt.be/dspace/bitstream/1942/8040/1/3227.pdf
570:
https://developer.nvidia.com/gpugems/GPUGems3/gpugems3_ch10.html
506:
An additional pass may be used for each additional light, using
1346:
1182:
467:
30:
620:
https://developer.nvidia.com/gpugems/GPUGems/gpugems_ch11.html
142:
72:
is visible from the light source, by comparing the pixel to a
752:
http://www.cspaul.com/doku.php?id=publications:rosen.2012.i3d
827:, a much slower technique capable of very realistic lighting
656:
992:"Anti-aliasing and Continuity with Trapezoidal Shadow Maps"
770:
http://image.diku.dk/projects/media/morten.mikkelsen.07.pdf
80:
image of the light source's view, stored in the form of a
1260:. Association for Computing Machinery. pp. 161β165.
734:
http://www.cs.unc.edu/~zhangh/technotes/shadow/shadow.ps
728:
http://graphics.pixar.com/library/DeepShadows/paper.pdf
633:
https://discovery.ucl.ac.uk/id/eprint/10001/1/10001.pdf
203:
Visualization of the depth map projected onto the scene
1252:
Donnelly, William; Lauritzen, Andrew (14 March 2006).
758:
http://www.idav.ucdavis.edu/func/return_pdf?pub_id=919
272:
1032:
Michael Wimmer; Daniel
Scherzer; Werner Purgathofer.
776:
http://graphics.stanford.edu/papers/silmap/silmap.pdf
266:
524:
to accomplish the shadow map process in two passes.
178:
The second step is to draw the scene from the usual
1762:
1717:
1584:
1473:
1431:
1403:
1380:
1338:
Shadow
Mapping implementation using Java and OpenGL
682:
http://www.crcnetbase.com/doi/abs/10.1201/b10648-36
701:http://www.cs.cornell.edu/~kb/publications/ASM.pdf
601:http://www-sop.inria.fr/reves/Marc.Stamminger/psm/
369:
1333:NVIDIA Real-time Shadow Algorithms and Techniques
1076:"Parallel-Split Shadow Maps on Programmable GPUs"
722:http://sites.google.com/site/osmanbrian2/dpsm.pdf
676:https://jankautz.com/publications/VSSM_PG2010.pdf
157:is often stored as a texture in graphics memory.
27:Method to draw shadows in computer graphic images
1203:"Common Techniques to Improve Shadow Depth Maps"
833:, another very slow but very realistic technique
399:Once the light-space coordinates are found, the
589:https://www.cg.tuwien.ac.at/research/vr/lispsm/
514:The example pictures in this article used the
1358:
655:SMSR "Shadow Map Silhouette Revectorization"
607:http://bib.irb.hr/datoteka/570987.12_CSSM.pdf
8:
1134:"Rendering Fake Soft Shadows with Smoothies"
844:Smooth Penumbra Transitions with Shadow Maps
793:Light Space Perspective Shadow Maps (LSPSMs)
1317:Shadow Mapping with Today's OpenGL Hardware
872:"Casting curved shadows on curved surfaces"
1428:
1365:
1351:
1343:
1328:Improvements for Shadow Mapping using GLSL
595:http://www.comp.nus.edu.sg/~tants/tsm.html
471:Final scene, rendered with ambient shadows
1166:CS1 maint: multiple names: authors list (
267:
265:
68:Shadows are created by testing whether a
862:
1156:
1145:
1056:
1045:
1014:
1003:
972:
961:
897:
886:
88:Principle of a shadow and a shadow map
1074:Fan Zhang; Hanqiu Sun; Oskari Nyman.
1034:"Light Space Perspective Shadow Maps"
768:SPPSM "Separating Plane Perspective"
96:This technique is less accurate than
7:
1770:List of computer graphics algorithms
1181:William Donnelly; Andrew Lauritzen.
674:VSSM "Variance Soft Shadow Mapping"
528:Shadow map real-time implementations
133:Scene from the light view, depth map
918:Real-Time Rendering, Fourth Edition
818:, a slower technique often used in
688:http://getlab.org/publications/FIV/
686:FIV "Fullsphere Irradiance Vector"
618:PCF "Percentage Closer Filtering"
226:that need a perspective division (
125:Scene rendered from the light view
61:. This concept was introduced by
25:
680:SSSS "Screen space soft shadows"
587:LiSPSM "Light Space Perspective"
1293:– via ACM Digital Library.
990:Tobias Martin; Tiow-Seng Tan.
790:Perspective shadow maps (PSMs)
740:http://gamma.cs.unc.edu/LOGSM/
1:
1727:3D computer graphics software
812:, another shadowing technique
713:http://free-zg.t-com.hr/cssm/
649:SAVSM "Summed Area Variance"
235:normalized device coordinates
1542:Hidden-surface determination
799:Variance Shadow Maps (VSMs)
796:Cascaded Shadow Maps (CSMs)
762:SDSM "Sample Distribution"
705:AVSM "Adaptive Volumetric"
237:, in which each component (
1807:
756:RMSM "Resolution Matched"
1128:Eric Chan, Fredo Durand,
1105:"Shadow Map Antialiasing"
774:SSSM "Shadow Silhouette"
668:PCSS "Percentage Closer"
657:http://bondarev.nl/?p=326
548:Shadow mapping techniques
213:coordinate transformation
34:Scene with shadow mapping
449:shadow map resolution).
253:) require an additional
1754:Vector graphics editors
1749:Raster graphics editors
1308:Hardware Shadow Mapping
1266:10.1145/1111411.1111440
787:Shadow Depth Maps (SDM)
720:DPSM "Dual Paraboloid"
395:Depth map test failures
224:homogeneous coordinates
195:Light space coordinates
147:orthographic projection
117:Creating the shadow map
1637:Checkerboard rendering
1254:"Variance shadow maps"
1228:"Cascaded Shadow Maps"
1183:"Variance Shadow Maps"
1155:Cite journal requires
1055:Cite journal requires
1013:Cite journal requires
971:Cite journal requires
943:"Cascaded shadow maps"
896:Cite journal requires
850:Forward shadow mapping
744:MDSM "Multiple Depth"
568:PSSM "Parallel Split"
497:Phong reflection model
472:
396:
371:
204:
139:perspective projection
134:
126:
53:is a process by which
43:
35:
1592:Affine transformation
1571:Surface triangulation
1515:Anisotropic filtering
521:GL_ARB_shadow_ambient
470:
394:
372:
209:matrix multiplication
202:
132:
124:
42:Scene with no shadows
41:
33:
717:DASM "Deep Adaptive"
711:CSSM "Camera Space"
605:CSSM "Camera Space"
264:
59:3D computer graphics
51:shadowing projection
18:Projective shadowing
1607:Collision detection
1535:Global illumination
1086:on January 17, 2010
738:LPSM "Logarithmic"
1657:Scanline rendering
1451:Parallax scrolling
1441:Isometric graphics
1232:Msdn.microsoft.com
1207:Msdn.microsoft.com
750:RTW "Rectilinear"
637:CSM "Convolution"
631:ESM "Exponential"
599:PSM "Perspective"
473:
397:
367:
361:
205:
135:
127:
108:Algorithm overview
44:
36:
1778:
1777:
1719:Graphics software
1612:Planar projection
1597:Back-face culling
1469:
1468:
1413:Alpha compositing
1374:Computer graphics
928:978-1-351-81615-1
846:Willem H. de Boer
508:additive blending
463:Drawing the scene
186:object only uses
174:Shading the scene
16:(Redirected from
1798:
1704:Volume rendering
1576:Wire-frame model
1429:
1367:
1360:
1353:
1344:
1295:
1294:
1292:
1290:
1249:
1243:
1242:
1240:
1238:
1224:
1218:
1217:
1215:
1213:
1199:
1193:
1192:
1190:
1189:
1178:
1172:
1171:
1164:
1158:
1153:
1151:
1143:
1141:
1140:
1125:
1119:
1118:
1116:
1115:
1101:
1095:
1094:
1092:
1091:
1082:. Archived from
1071:
1065:
1064:
1058:
1053:
1051:
1043:
1041:
1040:
1029:
1023:
1022:
1016:
1011:
1009:
1001:
999:
998:
987:
981:
980:
974:
969:
967:
959:
957:
956:
947:
939:
933:
932:
912:
906:
905:
899:
894:
892:
884:
882:
881:
876:
870:Lance Williams.
867:
593:TSM "Trapezoid"
376:
374:
373:
368:
366:
365:
149:should be used.
21:
1806:
1805:
1801:
1800:
1799:
1797:
1796:
1795:
1781:
1780:
1779:
1774:
1758:
1713:
1580:
1525:Fluid animation
1465:
1427:
1399:
1390:Diffusion curve
1382:Vector graphics
1376:
1371:
1304:
1299:
1298:
1288:
1286:
1276:
1251:
1250:
1246:
1236:
1234:
1226:
1225:
1221:
1211:
1209:
1201:
1200:
1196:
1187:
1185:
1180:
1179:
1175:
1165:
1154:
1144:
1138:
1136:
1127:
1126:
1122:
1113:
1111:
1103:
1102:
1098:
1089:
1087:
1073:
1072:
1068:
1054:
1044:
1038:
1036:
1031:
1030:
1026:
1012:
1002:
996:
994:
989:
988:
984:
970:
960:
954:
952:
945:
941:
940:
936:
929:
914:
913:
909:
895:
885:
879:
877:
874:
869:
868:
864:
859:
840:
838:Further reading
806:
784:
699:ASM "Adaptive"
696:
665:
643:VSM "Variance"
628:
615:
584:
574:CSM "Cascaded"
565:
555:
550:
530:
465:
389:
379:If done with a
360:
359:
354:
349:
344:
338:
337:
332:
327:
322:
316:
315:
310:
305:
300:
294:
293:
288:
283:
278:
268:
262:
261:
197:
176:
119:
110:
90:
28:
23:
22:
15:
12:
11:
5:
1804:
1802:
1794:
1793:
1783:
1782:
1776:
1775:
1773:
1772:
1766:
1764:
1760:
1759:
1757:
1756:
1751:
1746:
1745:
1744:
1739:
1734:
1723:
1721:
1715:
1714:
1712:
1711:
1706:
1701:
1696:
1691:
1686:
1681:
1676:
1674:Shadow mapping
1671:
1666:
1661:
1660:
1659:
1654:
1649:
1644:
1639:
1634:
1629:
1619:
1614:
1609:
1604:
1599:
1594:
1588:
1586:
1582:
1581:
1579:
1578:
1573:
1568:
1567:
1566:
1556:
1549:
1544:
1539:
1538:
1537:
1527:
1522:
1517:
1512:
1507:
1501:
1496:
1490:
1485:
1479:
1477:
1471:
1470:
1467:
1466:
1464:
1463:
1458:
1453:
1448:
1443:
1437:
1435:
1426:
1425:
1420:
1415:
1409:
1407:
1401:
1400:
1398:
1397:
1392:
1386:
1384:
1378:
1377:
1372:
1370:
1369:
1362:
1355:
1347:
1341:
1340:
1335:
1330:
1325:
1320:
1314:
1303:
1302:External links
1300:
1297:
1296:
1274:
1244:
1219:
1194:
1173:
1157:|journal=
1130:Marco Corbetta
1120:
1096:
1066:
1057:|journal=
1024:
1015:|journal=
982:
973:|journal=
934:
927:
907:
898:|journal=
861:
860:
858:
855:
854:
853:
847:
839:
836:
835:
834:
828:
825:Photon mapping
822:
813:
805:
802:
801:
800:
797:
794:
791:
788:
783:
780:
779:
778:
772:
766:
760:
754:
748:
742:
736:
732:FSM "Forward"
730:
724:
718:
715:
709:
703:
695:
692:
691:
690:
684:
678:
672:
664:
661:
660:
659:
653:
647:
641:
635:
627:
624:
623:
622:
614:
611:
610:
609:
603:
597:
591:
583:
580:
579:
578:
572:
564:
561:
560:
559:
554:
551:
549:
546:
529:
526:
512:
511:
504:
501:
464:
461:
388:
387:Depth map test
385:
364:
358:
355:
353:
350:
348:
345:
343:
340:
339:
336:
333:
331:
328:
326:
323:
321:
318:
317:
314:
311:
309:
306:
304:
301:
299:
296:
295:
292:
289:
287:
284:
282:
279:
277:
274:
273:
271:
255:scale and bias
196:
193:
175:
172:
118:
115:
109:
106:
102:stencil buffer
98:shadow volumes
89:
86:
63:Lance Williams
47:Shadow mapping
26:
24:
14:
13:
10:
9:
6:
4:
3:
2:
1803:
1792:
1789:
1788:
1786:
1771:
1768:
1767:
1765:
1761:
1755:
1752:
1750:
1747:
1743:
1740:
1738:
1735:
1733:
1730:
1729:
1728:
1725:
1724:
1722:
1720:
1716:
1710:
1707:
1705:
1702:
1700:
1697:
1695:
1692:
1690:
1687:
1685:
1682:
1680:
1679:Shadow volume
1677:
1675:
1672:
1670:
1667:
1665:
1662:
1658:
1655:
1653:
1650:
1648:
1645:
1643:
1640:
1638:
1635:
1633:
1630:
1628:
1625:
1624:
1623:
1620:
1618:
1615:
1613:
1610:
1608:
1605:
1603:
1600:
1598:
1595:
1593:
1590:
1589:
1587:
1583:
1577:
1574:
1572:
1569:
1565:
1562:
1561:
1560:
1557:
1554:
1553:Triangle mesh
1550:
1548:
1545:
1543:
1540:
1536:
1533:
1532:
1531:
1528:
1526:
1523:
1521:
1518:
1516:
1513:
1511:
1508:
1505:
1502:
1500:
1497:
1495:
1491:
1489:
1486:
1484:
1483:3D projection
1481:
1480:
1478:
1476:
1472:
1462:
1459:
1457:
1454:
1452:
1449:
1447:
1444:
1442:
1439:
1438:
1436:
1434:
1430:
1424:
1423:Text-to-image
1421:
1419:
1416:
1414:
1411:
1410:
1408:
1406:
1402:
1396:
1393:
1391:
1388:
1387:
1385:
1383:
1379:
1375:
1368:
1363:
1361:
1356:
1354:
1349:
1348:
1345:
1339:
1336:
1334:
1331:
1329:
1326:
1324:
1321:
1318:
1315:
1313:
1309:
1306:
1305:
1301:
1285:
1281:
1277:
1271:
1267:
1263:
1259:
1255:
1248:
1245:
1233:
1229:
1223:
1220:
1208:
1204:
1198:
1195:
1184:
1177:
1174:
1169:
1162:
1149:
1135:
1131:
1124:
1121:
1110:
1106:
1100:
1097:
1085:
1081:
1077:
1070:
1067:
1062:
1049:
1035:
1028:
1025:
1020:
1007:
993:
986:
983:
978:
965:
951:
944:
938:
935:
930:
924:
921:. CRC Press.
920:
919:
911:
908:
903:
890:
873:
866:
863:
856:
851:
848:
845:
842:
841:
837:
832:
829:
826:
823:
821:
817:
814:
811:
810:Shadow volume
808:
807:
803:
798:
795:
792:
789:
786:
785:
782:Miscellaneous
781:
777:
773:
771:
767:
765:
761:
759:
755:
753:
749:
747:
743:
741:
737:
735:
731:
729:
725:
723:
719:
716:
714:
710:
708:
704:
702:
698:
697:
693:
689:
685:
683:
679:
677:
673:
671:
667:
666:
662:
658:
654:
652:
648:
646:
642:
640:
636:
634:
630:
629:
625:
621:
617:
616:
612:
608:
604:
602:
598:
596:
592:
590:
586:
585:
581:
577:
573:
571:
567:
566:
562:
557:
556:
552:
547:
545:
543:
538:
535:
527:
525:
523:
522:
517:
509:
505:
502:
499:
498:
492:
491:
490:
488:
487:
486:GL_ARB_shadow
481:
478:
469:
462:
460:
458:
453:
450:
447:
442:
440:
436:
431:
429:
425:
421:
417:
412:
410:
406:
402:
393:
386:
384:
382:
377:
362:
356:
351:
346:
341:
334:
329:
324:
319:
312:
307:
302:
297:
290:
285:
280:
275:
269:
259:
256:
252:
248:
244:
240:
236:
232:
231:
230:3D projection
225:
221:
216:
214:
210:
201:
194:
192:
189:
185:
181:
173:
171:
168:
162:
158:
156:
150:
148:
144:
140:
131:
123:
116:
114:
107:
105:
103:
99:
94:
87:
85:
83:
79:
75:
71:
66:
64:
60:
57:are added to
56:
52:
48:
40:
32:
19:
1684:Shear matrix
1673:
1647:Path tracing
1632:Cone tracing
1627:Beam tracing
1547:Polygon mesh
1488:3D rendering
1287:. Retrieved
1257:
1247:
1235:. Retrieved
1231:
1222:
1210:. Retrieved
1206:
1197:
1186:. Retrieved
1176:
1148:cite journal
1137:. Retrieved
1123:
1112:. Retrieved
1099:
1088:. Retrieved
1084:the original
1079:
1069:
1048:cite journal
1037:. Retrieved
1027:
1006:cite journal
995:. Retrieved
985:
964:cite journal
953:. Retrieved
937:
917:
910:
889:cite journal
878:. Retrieved
865:
663:Soft Shadows
558:SSM "Simple"
542:soft shadows
539:
531:
520:
513:
494:
485:
482:
474:
454:
451:
443:
438:
434:
432:
427:
423:
419:
415:
413:
408:
404:
400:
398:
378:
260:
254:
246:
242:
238:
234:
233:) to become
227:
217:
206:
177:
163:
159:
151:
136:
111:
95:
91:
77:
67:
50:
46:
45:
1699:Translation
1652:Ray casting
1642:Ray tracing
1520:Cel shading
1494:Image-based
1475:3D graphics
1456:Ray casting
1405:2D graphics
1237:November 7,
1212:November 7,
820:ray tracing
816:Ray casting
726:DSM "Deep"
1763:Algorithms
1617:Reflection
1289:7 November
1275:159593295X
1188:2008-02-14
1139:2008-02-14
1114:2008-02-14
1090:2008-02-14
1080:GPU Gems 3
1039:2008-02-14
997:2008-02-14
955:2008-02-14
880:2020-12-22
857:References
518:extension
1742:rendering
1732:animation
1622:Rendering
831:Radiosity
626:Filtering
613:Smoothing
563:Splitting
457:projector
167:stitching
155:depth map
1785:Category
1737:modeling
1664:Rotation
1602:Clipping
1585:Concepts
1564:Deferred
1530:Lighting
1510:Aliasing
1504:Unbiased
1499:Spectral
1319:, nVidia
804:See also
694:Assorted
534:aliasing
433:If the (
251:Direct3D
74:z-buffer
1791:Shading
1669:Scaling
1559:Shading
582:Warping
477:shaders
428:failure
414:If the
82:texture
55:shadows
1689:Shader
1461:Skybox
1446:Mode 7
1418:Layers
1312:nVidia
1284:538139
1282:
1272:
1109:NVidia
950:NVidia
925:
553:Simple
516:OpenGL
446:shader
381:shader
220:OpenGL
180:camera
145:), an
1709:Voxel
1694:Texel
1395:Pixel
1280:S2CID
946:(PDF)
875:(PDF)
444:In a
245:, or
78:depth
70:pixel
1433:2.5D
1291:2021
1270:ISBN
1239:2021
1214:2021
1168:link
1161:help
1061:help
1019:help
977:help
923:ISBN
902:help
495:see
403:and
228:see
1262:doi
335:0.5
330:0.5
313:0.5
303:0.5
291:0.5
276:0.5
143:Sun
76:or
49:or
1787::
1310:,
1278:.
1268:.
1256:.
1230:.
1205:.
1152::
1150:}}
1146:{{
1132:.
1107:.
1078:.
1052::
1050:}}
1046:{{
1010::
1008:}}
1004:{{
968::
966:}}
962:{{
948:.
893::
891:}}
887:{{
241:,
188:2D
184:3D
84:.
1555:)
1551:(
1506:)
1492:(
1366:e
1359:t
1352:v
1264::
1241:.
1216:.
1191:.
1170:)
1163:)
1159:(
1142:.
1117:.
1093:.
1063:)
1059:(
1042:.
1021:)
1017:(
1000:.
979:)
975:(
958:.
931:.
904:)
900:(
883:.
439:y
437:,
435:x
424:y
422:,
420:x
416:z
409:z
405:y
401:x
363:]
357:1
352:0
347:0
342:0
325:0
320:0
308:0
298:0
286:0
281:0
270:[
247:z
243:y
239:x
20:)
Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.