Knowledge (XXG)

Software rendering

Source 📝

66: 25: 168: 490:
But even for high-end graphics, the 'art' of software rendering hasn't completely died out. While early graphics cards were much faster than software renderers and originally had better quality and more features, it restricted the developer to 'fixed-function' pixel processing. Quickly there came a
522:
Since the adoption of graphics hardware as the primary means for real-time rendering, CPU performance has grown steadily as ever. This allowed for new software rendering technologies to emerge. Although largely overshadowed by the performance of hardware rendering, some modern real-time software
275:
Rendering is used in architecture, simulators, video games, movies and television visual effects and design visualization. Rendering is the last step in an animation process, and gives the final appearance to the models and animation with visual effects such as shading, texture-mapping, shadows,
240: 543:
For various reasons such as hardware failure, broken drivers, emulation, quality assurance, software programming, hardware design, and hardware limitations, it is sometimes useful to let the CPU assume some or all functions in a graphics pipeline.
573:, provided since Windows Vista by Microsoft, which works at the system level to provide fast D3D 9.1 and above emulation. This is in addition to the extremely slow software-based reference rasterizer Microsoft has always provided to developers. 288:, and generally each frame must be rendered in a few milliseconds. Offline rendering is used to create realistic images and movies, where each frame can take hours or days to complete, or for debugging of complex graphics code by programmers. 272:. Rendering everything with the (general-purpose) CPU has the main advantage that it is not restricted to the (limited) capabilities of graphics hardware, but the disadvantage is that more transistors are needed to obtain the same speed. 646:
Because of the need for very high-quality and diversity of effects, offline rendering requires a lot of flexibility. Even though commercial real-time graphics hardware is becoming higher in quality and more programmable by the day, most
462:
Games for children and casual gamers (who use outdated systems or systems primarily meant for office applications) during the late 1990s to early 2000s typically used a software renderer as a fallback. For example,
491:
need for diversification of the looks of games. Software rendering has no restrictions because an arbitrary program is executed. So graphics cards reintroduced this programmability, by executing small programs per
736: 531:. Although nowadays the dominance of hardware rendering over software rendering is undisputed because of unparalleled performance, features, and continuing innovation, some believe that CPUs and 589:
Contrary to real-time rendering, performance is only of second priority with pre-rendering. It is used mainly in the film industry to create high-quality renderings of lifelike scenes. Many
475:
default to software mode and can be adjusted to use OpenGL or DirectX in the Options menu. Some 3D modeling software also features software renderers for visualization. And finally the
435:
markets, the evolution of 3D was more abrupt, as they had always relied heavily on single-purpose chipsets. 16 bit consoles gained RISC accelerator cartridges in games such as
296:
For real-time rendering the focus is on performance. The earliest texture mapped real-time software renderers for PCs used many tricks to create the illusion of 3D geometry (
547:
As a result, there are a number of general-purpose software packages capable of replacing or augmenting an existing hardware graphical accelerator, including:
778: 284:(also known as online rendering), and pre-rendering (also called offline rendering). Real-time rendering is used to interactively render a scene, like in 465: 702: 394:. Though software rendering fell off as a primary rendering technology, many games well into the 2000s still had a software renderer as a fallback, 570: 261: 1167: 1140: 1183: 787: 655:, for example, allows shaders of unlimited length and complexity, demanding a general-purpose processor. Techniques for high realism like 602: 83: 38: 907: 728: 226: 208: 149: 52: 523:
renderers manage to combine a broad feature set and reasonable performance (for a software renderer), by making use of specialized
406:
for instance, feature software renderers able to produce enjoyable quality and performance on CPUs of that period. One of the last
130: 771: 102: 1030: 831: 277: 87: 1155: 1145: 1035: 854: 254: 109: 519:-like programming languages for shaders and start to show some resemblance with (arbitrary function) software rendering. 1150: 1015: 955: 500: 452: 281: 186: 317:, for example, allowed a limited form of looking up and down, slanted floors, and rooms over rooms, but resorted to 116: 943: 764: 607: 508: 318: 76: 528: 407: 648: 564: 516: 396: 352: 244: 98: 663:
are also inherently unsuited for hardware implementation and in most cases are realized purely in software.
512: 480: 269: 190: 44: 469:
has a choice of selecting either hardware or software rendering before playing the game, while others like
1162: 1112: 1077: 1055: 1050: 706: 656: 580:, provided in Mac OS X by Apple, which works at the system level to provide fast OpenGL 1.1–4.1 emulation. 471: 329: 178: 1204: 1005: 984: 928: 593:
in today's movies are entirely or partially created by computer graphics. For example, the character of
456: 888: 874: 818: 672: 652: 334: 253:
is the process of generating an image from a model by means of computer software. In the context of
1020: 948: 836: 660: 524: 1082: 1070: 917: 912: 864: 635: 631: 560:, a library sold as middleware intended for bundling with D3D9 & OpenGL ES 2 client software. 535:
will converge one way or another and the line between software and hardware rendering will fade.
428: 362: 350:-based graphics also gained popularity for fast and relatively detailed terrain rendering, as in 123: 1132: 1025: 1010: 826: 677: 492: 417: 402: 313: 258: 1117: 1107: 989: 977: 557: 308: 285: 239: 554:' Pixomatic, sold as middleware intended for static linking inside D3D 7–9 client software. 938: 803: 795: 639: 590: 371: 343: 301: 321:
for all detailed objects. The technology used in these games is currently categorized as
1087: 551: 412: 367: 357: 1198: 1092: 966: 896: 598: 443: 265: 1097: 1060: 1045: 1040: 960: 901: 626: 448: 421: 328:
One of the first games architecturally similar to modern 3D titles, allowing full
1065: 933: 869: 729:"Tim Sweeney, Part 2: "DirectX 10 is the last relevant graphics API" | TG Daily" 682: 577: 567:
work as a shim at the system level to emulate an OpenGL 1.4–3.2 hardware device.
432: 65: 483:
of hardware also requires a software renderer. An example of the latter is the
379: 257:, software rendering refers to a rendering process that is not dependent upon 620: 611: 447:
which implemented software rendering through tailored instruction sets. The
455:
were the first consoles to ship with 3D hardware, but it wasn't until the
923: 484: 476: 339: 972: 504: 437: 387: 304: 297: 1102: 859: 594: 391: 756: 1122: 808: 615: 496: 347: 280:
and motion blur. Rendering can be split into two main categories:
238: 846: 322: 760: 532: 383: 378:
and other polygonal 3D games of that time helped the sales of
161: 59: 18: 563:
The swrast, softpipe, & LLVMpipe renderers inside
703:"LIVE Design - Interactive Visualizations | Autodesk" 416:, which featured advanced voxel technology but also 1176: 1131: 998: 887: 845: 817: 794: 90:. Unsourced material may be challenged and removed. 459:that such features came to be used in most games. 614:movies, CGI is gaining popularity. Most notably 243:Software renderer running on a device without a 651:CGI still requires software rendering. Pixar's 772: 527:and advanced instruction set extensions like 360:hardware eventually made its use impossible. 8: 268:. The rendering takes place entirely in the 189:. There might be a discussion about this on 366:features an efficient software renderer by 53:Learn how and when to remove these messages 842: 779: 765: 757: 466:Toy Story 2: Buzz Lightyear to the Rescue 227:Learn how and when to remove this message 209:Learn how and when to remove this message 150:Learn how and when to remove this message 618:has produced a series of movies such as 382:, and more games started using hardware 694: 16:Generating images by computer software 7: 1184:List of computer graphics algorithms 88:adding citations to reliable sources 739:from the original on March 4, 2016 14: 34:This article has multiple issues. 410:without a hardware renderer was 166: 64: 23: 576:The Apple software renderer in 424:as found on graphics hardware. 75:needs additional citations for 42:or discuss these issues on the 1: 1141:3D computer graphics software 956:Hidden-surface determination 507:. Shader languages, such as 292:Real-time software rendering 727:Valich, Theo (2012-12-13). 255:computer graphics rendering 1221: 608:computer-generated imagery 511:(HLSL) for DirectX or the 509:High Level Shader Language 342:entirely made from bitmap 1168:Vector graphics editors 1163:Raster graphics editors 513:OpenGL Shading Language 374:. With its popularity, 300:was limited to flat or 1051:Checkerboard rendering 487:reference rasterizer. 247: 1006:Affine transformation 985:Surface triangulation 929:Anisotropic filtering 603:The Lord of the Rings 346:triangular polygons. 242: 709:on February 21, 2014 673:3D computer graphics 606:films is completely 179:confusing or unclear 99:"Software rendering" 84:improve this article 1021:Collision detection 949:Global illumination 661:global illumination 525:dynamic compilation 307:employed mainly in 282:real-time rendering 187:clarify the article 1071:Scanline rendering 865:Parallax scrolling 855:Isometric graphics 634:the world's first 632:Blender Foundation 429:video game console 251:Software rendering 248: 1192: 1191: 1133:Graphics software 1026:Planar projection 1011:Back-face culling 883: 882: 827:Alpha compositing 788:Computer graphics 678:Headless software 539:Software fallback 418:texture filtering 403:Unreal Tournament 338:, which featured 314:Ultima Underworld 309:flight simulators 286:3D computer games 259:graphics hardware 237: 236: 229: 219: 218: 211: 160: 159: 152: 134: 57: 1212: 1118:Volume rendering 990:Wire-frame model 843: 781: 774: 767: 758: 748: 747: 745: 744: 724: 718: 717: 715: 714: 705:. Archived from 699: 610:(CGI). Also for 503:, also known as 232: 225: 214: 207: 203: 200: 194: 170: 169: 162: 155: 148: 144: 141: 135: 133: 92: 68: 60: 49: 27: 26: 19: 1220: 1219: 1215: 1214: 1213: 1211: 1210: 1209: 1195: 1194: 1193: 1188: 1172: 1127: 994: 939:Fluid animation 879: 841: 813: 804:Diffusion curve 796:Vector graphics 790: 785: 754: 752: 751: 742: 740: 726: 725: 721: 712: 710: 701: 700: 696: 691: 669: 640:Elephants Dream 591:special effects 587: 541: 294: 233: 222: 221: 220: 215: 204: 198: 195: 184: 171: 167: 156: 145: 139: 136: 93: 91: 81: 69: 28: 24: 17: 12: 11: 5: 1218: 1216: 1208: 1207: 1197: 1196: 1190: 1189: 1187: 1186: 1180: 1178: 1174: 1173: 1171: 1170: 1165: 1160: 1159: 1158: 1153: 1148: 1137: 1135: 1129: 1128: 1126: 1125: 1120: 1115: 1110: 1105: 1100: 1095: 1090: 1088:Shadow mapping 1085: 1080: 1075: 1074: 1073: 1068: 1063: 1058: 1053: 1048: 1043: 1033: 1028: 1023: 1018: 1013: 1008: 1002: 1000: 996: 995: 993: 992: 987: 982: 981: 980: 970: 963: 958: 953: 952: 951: 941: 936: 931: 926: 921: 915: 910: 904: 899: 893: 891: 885: 884: 881: 880: 878: 877: 872: 867: 862: 857: 851: 849: 840: 839: 834: 829: 823: 821: 815: 814: 812: 811: 806: 800: 798: 792: 791: 786: 784: 783: 776: 769: 761: 750: 749: 719: 693: 692: 690: 687: 686: 685: 680: 675: 668: 665: 649:photorealistic 586: 583: 582: 581: 574: 568: 561: 555: 552:RAD Game Tools 540: 537: 380:graphics cards 368:Michael Abrash 358:fixed-function 356:, but popular 302:Gouraud-shaded 293: 290: 235: 234: 217: 216: 174: 172: 165: 158: 157: 72: 70: 63: 58: 32: 31: 29: 22: 15: 13: 10: 9: 6: 4: 3: 2: 1217: 1206: 1203: 1202: 1200: 1185: 1182: 1181: 1179: 1175: 1169: 1166: 1164: 1161: 1157: 1154: 1152: 1149: 1147: 1144: 1143: 1142: 1139: 1138: 1136: 1134: 1130: 1124: 1121: 1119: 1116: 1114: 1111: 1109: 1106: 1104: 1101: 1099: 1096: 1094: 1093:Shadow volume 1091: 1089: 1086: 1084: 1081: 1079: 1076: 1072: 1069: 1067: 1064: 1062: 1059: 1057: 1054: 1052: 1049: 1047: 1044: 1042: 1039: 1038: 1037: 1034: 1032: 1029: 1027: 1024: 1022: 1019: 1017: 1014: 1012: 1009: 1007: 1004: 1003: 1001: 997: 991: 988: 986: 983: 979: 976: 975: 974: 971: 968: 967:Triangle mesh 964: 962: 959: 957: 954: 950: 947: 946: 945: 942: 940: 937: 935: 932: 930: 927: 925: 922: 919: 916: 914: 911: 909: 905: 903: 900: 898: 897:3D projection 895: 894: 892: 890: 886: 876: 873: 871: 868: 866: 863: 861: 858: 856: 853: 852: 850: 848: 844: 838: 837:Text-to-image 835: 833: 830: 828: 825: 824: 822: 820: 816: 810: 807: 805: 802: 801: 799: 797: 793: 789: 782: 777: 775: 770: 768: 763: 762: 759: 755: 738: 734: 730: 723: 720: 708: 704: 698: 695: 688: 684: 681: 679: 676: 674: 671: 670: 666: 664: 662: 658: 654: 650: 644: 642: 641: 637: 633: 629: 628: 623: 622: 617: 613: 609: 605: 604: 600: 599:Peter Jackson 596: 592: 585:Pre-rendering 584: 579: 575: 572: 569: 566: 562: 559: 556: 553: 550: 549: 548: 545: 538: 536: 534: 530: 526: 520: 518: 514: 510: 506: 502: 498: 494: 488: 486: 482: 478: 474: 473: 468: 467: 460: 458: 454: 450: 446: 445: 444:Virtua Racing 440: 439: 434: 430: 425: 423: 419: 415: 414: 409: 405: 404: 399: 398: 393: 389: 385: 381: 377: 373: 369: 365: 364: 359: 355: 354: 349: 345: 341: 337: 336: 331: 326: 324: 320: 316: 315: 310: 306: 303: 299: 291: 289: 287: 283: 279: 273: 271: 267: 266:graphics card 263: 260: 256: 252: 246: 241: 231: 228: 213: 210: 202: 192: 191:the talk page 188: 182: 180: 175:This article 173: 164: 163: 154: 151: 143: 132: 129: 125: 122: 118: 115: 111: 108: 104: 101: –  100: 96: 95:Find sources: 89: 85: 79: 78: 73:This article 71: 67: 62: 61: 56: 54: 47: 46: 41: 40: 35: 30: 21: 20: 1205:3D rendering 1098:Shear matrix 1061:Path tracing 1046:Cone tracing 1041:Beam tracing 961:Polygon mesh 902:3D rendering 753: 741:. Retrieved 732: 722: 711:. Retrieved 707:the original 697: 645: 638: 627:Finding Nemo 625: 619: 601: 588: 546: 542: 521: 515:(GLSL), are 489: 481:verification 470: 464: 461: 442: 436: 426: 422:bump mapping 411: 401: 395: 375: 372:John Carmack 361: 351: 333: 327: 312: 295: 274: 264:, such as a 250: 249: 223: 205: 196: 185:Please help 176: 146: 137: 127: 120: 113: 106: 94: 82:Please help 77:verification 74: 50: 43: 37: 36:Please help 33: 1113:Translation 1066:Ray casting 1056:Ray tracing 934:Cel shading 908:Image-based 889:3D graphics 870:Ray casting 819:2D graphics 683:Z-buffering 558:SwiftShader 457:PlayStation 433:arcade game 353:Delta Force 278:reflections 1177:Algorithms 1031:Reflection 743:2016-11-07 713:2016-08-20 689:References 657:raytracing 636:open movie 630:, and the 181:to readers 110:newspapers 39:improve it 1156:rendering 1146:animation 1036:Rendering 653:RenderMan 621:Toy Story 612:animation 477:emulation 472:Half-Life 408:AAA games 340:3D models 199:June 2008 140:July 2007 45:talk page 1199:Category 1151:modeling 1078:Rotation 1016:Clipping 999:Concepts 978:Deferred 944:Lighting 924:Aliasing 918:Unbiased 913:Spectral 737:Archived 733:TG Daily 667:See also 501:fragment 495:and per 485:Direct3D 344:textured 305:polygons 1083:Scaling 973:Shading 597:in the 505:shaders 438:StarFox 427:In the 413:Outcast 388:DirectX 335:Descent 319:sprites 298:true 3D 177:may be 124:scholar 1103:Shader 875:Skybox 860:Mode 7 832:Layers 595:Gollum 493:vertex 449:Jaguar 397:Unreal 392:OpenGL 332:, was 126:  119:  112:  105:  97:  1123:Voxel 1108:Texel 809:Pixel 616:Pixar 497:pixel 386:like 376:Quake 363:Quake 348:Voxel 262:ASICs 131:JSTOR 117:books 847:2.5D 659:and 624:and 571:WARP 565:Mesa 533:GPUs 479:and 451:and 441:and 431:and 420:and 400:and 390:and 384:APIs 370:and 330:6DoF 323:2.5D 103:news 578:CGL 529:SSE 453:3DO 311:.) 270:CPU 245:GPU 86:by 1201:: 735:. 731:. 643:. 325:. 48:. 969:) 965:( 920:) 906:( 780:e 773:t 766:v 746:. 716:. 517:C 499:/ 230:) 224:( 212:) 206:( 201:) 197:( 193:. 183:. 153:) 147:( 142:) 138:( 128:· 121:· 114:· 107:· 80:. 55:) 51:(

Index

improve it
talk page
Learn how and when to remove these messages

verification
improve this article
adding citations to reliable sources
"Software rendering"
news
newspapers
books
scholar
JSTOR
Learn how and when to remove this message
confusing or unclear
clarify the article
the talk page
Learn how and when to remove this message
Learn how and when to remove this message

GPU
computer graphics rendering
graphics hardware
ASICs
graphics card
CPU
reflections
real-time rendering
3D computer games
true 3D

Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.