Zum Inhalt springen

MegaTexture

aus Wikipedia, der freien Enzyklopädie

MegaTexture, auch Mega-Texture, bezeichnet eine Technik der {{#invoke:Vorlage:lang|flat}}, die es erleichtert, eine einzelne große Textur zur Verkleidung eines virtuellen Geländes heranzuziehen.

Vor Einführung dieser Technologie verwendeten Spiele wie Crysis überwiegend kleinere, sich wiederholenden Texturenkacheln zur Texturierung eines Terrains. Diese Texturen sind selten größer als 2048×2048 Pixel. Die Version der MegaTexture, die von id Softwares ehemaligem Technical Director John Carmack entwickelt wurde, und das erste Mal in Splash Damages Spiel Enemy Territory: Quake Wars dem Massenpublikum vorgestellt wurde, nutzt bis zu 32000×32000 Pixel große Texturen zur Darstellung des Terrains.

Technik

Die MegaTexture-Technik ist genau genommen eine Implementierung des Clip Mapping, auch ClipTexture genannt, welches von Silicon Graphics in der Mitte der 1990er entwickelt wurde.

Da die MegaTexture eine große einzelne Textur für die statische Struktur eines Geländes nutzt, ist sie sehr datenintensiv, da hier nicht auf sich wiederholende Texturen gesetzt wird. Um der großen Datenmenge Herr zu werden, bedient man sich des Texturestreaming. Dabei wird die Textur auf einem Wechseldatenträger oder einer Festplatte gespeichert und bei Bedarf geladen, um so große Mengen an Detail und Variation über ein großes Gebiet mit vergleichsweise wenig Arbeitsspeicher-Nutzung zu ermöglichen.

Während des Rendervorgangs werden dabei die benötigten Teile der Textur skaliert auf den entsprechenden Mip-Mapping-Level, der von der Polygongröße abhängig ist, in den zugewiesenen Texturspeicher des Videospeichers geladen. Dieses Vorgehen erlaubt es der Engine, die Anzahl der Texel, der Texturpixel, im VRAM gering zu halten.

Zukünftige Entwicklung

Einleitung

Id hat bereits eine weiter fortgeschrittene Technik präsentiert, welche auf der MegaTexture-Idee aufbaut und sowohl Geometrie als auch Texturen virtualisiert, um auf diese Art einzigartige Geometrien bis hin zum Gegenwert der Texel (Sparse Voxel Octree (SVO)) zu erhalten. Potenziell könnte diese Technik in der id Tech 6 zum Einsatz kommen.

Dies funktioniert mittels Raycasting einer durch Voxel anstelle von Polygonen dargestellten Geometrie. Ziel ist es, Teile des Octrees in den Videospeicher zu streamen und so die Komplexität der Geometrie derart zu erhöhen, dass selbst aus nächster Nähe ein bisher unerreichter Detailgrad entsteht. Die Geometriedetails, die mit dieser Methode dargestellt werden können, sind beinahe unendlich, was es unnötig macht, 3D-Details mit Techniken wie dem Normal Mapping vorzutäuschen.

Obwohl die meisten Voxel-Test große Mengen an Speicher benötigen (bis zu mehrere Gigabytes), glaubt Jon Olick von id Software, dass es möglich ist, die SVOs auf 1.15 bits per Voxel an Positionsdaten zu komprimieren.

Virtual Texturing

Das id-Software-Spiel Rage, ausgestattet mit der id-Tech-5-Engine, nutzt eine fortgeschrittene Technik namens Virtual Texturing.<ref><templatestyles src="Webarchiv/styles.css" />{{#if:20091007031619

      | {{#ifeq: 20091007031619 | *
    | Vorlage:Webarchiv/Wartung/Stern{{#if: Archivierte Kopie | {{#invoke:WLink|getEscapedTitle|Archivierte Kopie}} | {{#invoke:Webarchiv|getdomain|http://s09.idav.ucdavis.edu/talks/05-JP_id_Tech_5_Challenges.pdf}} }} (Archivversionen)
    | {{#iferror: {{#time: j. F Y|20091007031619}}
         | {{#if:  || }}Vorlage:Webarchiv/Wartung/DatumDer Wert des Parameters {{#if: wayback | wayback | Datum }} muss ein gültiger Zeitstempel der Form YYYYMMDDHHMMSS sein!
         | {{#if: Archivierte Kopie | {{#invoke:WLink|getEscapedTitle|Archivierte Kopie}} | {{#invoke:Webarchiv|getdomain|http://s09.idav.ucdavis.edu/talks/05-JP_id_Tech_5_Challenges.pdf}} }} {{#ifeq:  | [] | [ | ( }}Memento{{#if: {{#if: 2022-12-14 12:12:00 InternetArchiveBot | 2022-12-14 12:12:00 InternetArchiveBot |  }} |  des Vorlage:Referrer }} vom {{#time: j. F Y|20091007031619}} im Internet Archive{{#if:  | ;  }}{{#ifeq:  | [] | ] | ) }}
      }}
  }}
      | {{#if:
          | {{#iferror: {{#time: j. F Y|{{{webciteID}}}}}
    | {{#switch: {{#invoke:Str|len|{{{webciteID}}}}}
       | 16= {{#if: Archivierte Kopie | {{#invoke:WLink|getEscapedTitle|Archivierte Kopie}} | {{#invoke:Webarchiv|getdomain|http://s09.idav.ucdavis.edu/talks/05-JP_id_Tech_5_Challenges.pdf}} }} {{#ifeq:  | [] | [ | ( }}Memento{{#if: {{#if: 2022-12-14 12:12:00 InternetArchiveBot | 2022-12-14 12:12:00 InternetArchiveBot |  }} |  des Vorlage:Referrer }} vom {{#time: j. F Y| 19700101000000 + {{#expr: floor {{#expr: {{#invoke:Str|sub|{{{webciteID}}}|1|10}}/86400}} }} days}} auf WebCite{{#if:  | ;  }}{{#ifeq:  | [] | ] | ) }}
       | 9 = {{#if: Archivierte Kopie | {{#invoke:WLink|getEscapedTitle|Archivierte Kopie}} | {{#invoke:Webarchiv|getdomain|http://s09.idav.ucdavis.edu/talks/05-JP_id_Tech_5_Challenges.pdf}} }} {{#ifeq:  | [] | [ | ( }}Memento{{#if: {{#if: 2022-12-14 12:12:00 InternetArchiveBot | 2022-12-14 12:12:00 InternetArchiveBot |  }} |  des Vorlage:Referrer}} vom {{#time: j. F Y| 19700101000000 + {{#expr: floor {{#expr: {{#invoke:Str|sub|{{#invoke:Expr|base62|{{{webciteID}}}}}|1|10}}/86400}} }} days}} auf WebCite{{#if:  | ;  }}{{#ifeq:  | [] | ] | ) }}
       | #default= Der Wert des Parameters {{#if: webciteID | webciteID | ID }} muss entweder ein Zeitstempel der Form YYYYMMDDHHMMSS oder ein Schüsselwert mit 9 Zeichen oder eine 16-stellige Zahl sein!Vorlage:Webarchiv/Wartung/webcitation{{#if:  || }}
      }}
    | c|{{{webciteID}}}}} {{#if: Archivierte Kopie | {{#invoke:WLink|getEscapedTitle|Archivierte Kopie}} | {{#invoke:Webarchiv|getdomain|http://s09.idav.ucdavis.edu/talks/05-JP_id_Tech_5_Challenges.pdf}} }} (Memento{{#if: {{#if: 2022-12-14 12:12:00 InternetArchiveBot | 2022-12-14 12:12:00 InternetArchiveBot |  }} |  des Vorlage:Referrer}} vom {{#time: j. F Y|{{{webciteID}}}}} auf WebCite{{#if:  | ;  }}{{#ifeq:  | [] | ] | ) }}
  }}
          | {{#if: 
              | Vorlage:Webarchiv/Today
              | {{#if:
                      | Vorlage:Webarchiv/Generisch
                      | {{#if: Archivierte Kopie | {{#invoke:WLink|getEscapedTitle|Archivierte Kopie}} | {{#invoke:Webarchiv|getdomain|http://s09.idav.ucdavis.edu/talks/05-JP_id_Tech_5_Challenges.pdf}} }}  
                 }}}}}}}}{{#if:2022-12-14 12:12:00 InternetArchiveBot
    | Vorlage:Webarchiv/archiv-bot
  }}{{#invoke:TemplatePar|check
     |all      = url=
     |opt      = text= wayback= webciteID= archive-is= archive-today= archiv-url= archiv-datum= ()= archiv-bot= format= original=
     |cat      = Wikipedia:Vorlagenfehler/Vorlage:Webarchiv
     |errNS    = 0
     |template = Vorlage:Webarchiv
     |format   = *
     |preview  = 1
  }}{{#ifexpr: {{#if:20091007031619|1|0}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}} <> 1
    | {{#if:  || }}Vorlage:Webarchiv/Wartung/Parameter{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Genau einer der Parameter 'wayback', 'webciteID', 'archive-today', 'archive-is' oder 'archiv-url' muss angegeben werden.|1}}
  }}{{#if: 
    | {{#switch: {{#invoke:Webarchiv|getdomain|{{{archiv-url}}}}}
        | web.archive.org = 
          {{#if:  || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Im Parameter 'archiv-url' wurde URL von Internet Archive erkannt, bitte Parameter 'wayback' benutzen.|1}} 
        | webcitation.org = 
          {{#if:  || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Im Parameter 'archiv-url' wurde URL von WebCite erkannt, bitte Parameter 'webciteID' benutzen.|1}} 
        | archive.today |archive.is |archive.ph |archive.fo |archive.li |archive.md |archive.vn = 
          {{#if:  || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Im Parameter 'archiv-url' wurde URL von archive.today erkannt, bitte Parameter 'archive-today' benutzen.|1}}
      }}{{#if: 
         | {{#iferror: {{#iferror:{{#invoke:Vorlage:FormatDate|Execute}}|}}
             | {{#if:  || }}Vorlage:Webarchiv/Wartung/Parameter{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Der Wert des Parameter 'archiv-datum' ist ungültig oder hat ein ungültiges Format.|1}}
          |  }} 
         | {{#if:  || }}Vorlage:Webarchiv/Wartung/Parameter{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Der Pflichtparameter 'archiv-datum' wurde nicht angegeben.|1}}
      }}
    | {{#if: 
         | {{#if:  || }}Vorlage:Webarchiv/Wartung/Parameter{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Der Parameter 'archiv-datum' ist nur in Verbindung mit 'archiv-url' angebbar.|1}}
      }}
  }}{{#if:{{#invoke:URLutil|isHostPathResource|http://s09.idav.ucdavis.edu/talks/05-JP_id_Tech_5_Challenges.pdf}}
    || {{#if:  || }}
  }}{{#if: Archivierte Kopie
    | {{#if: {{#invoke:WLink|isBracketedLink|Archivierte Kopie}}
        | {{#if:  || }}
      }}
    | {{#if:  || }}Vorlage:Webarchiv/Wartung/Linktext_fehlt
  }}{{#switch: 
    |addlarchives|addlpages= {{#if:  || }}{{#if: 1 |Vorlage:Webarchiv/Wartung/Parameter}}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: enWP-Wert im Parameter 'format'.|1}}
  }}{{#ifeq: {{#invoke:Str|find|http://s09.idav.ucdavis.edu/talks/05-JP_id_Tech_5_Challenges.pdf%7Carchiv}} |-1
    || {{#ifeq: {{#invoke:Str|find|{{#invoke:Str|cropleft|http://s09.idav.ucdavis.edu/talks/05-JP_id_Tech_5_Challenges.pdf%7C4}}%7Chttp}} |-1
         || {{#switch: {{#invoke:Webarchiv|getdomain|http://s09.idav.ucdavis.edu/talks/05-JP_id_Tech_5_Challenges.pdf }}
              | abendblatt.de | daserste.ndr.de | inarchive.com | webcitation.org = 
              | #default = {{#if:  || }}{{#if: 1 |Vorlage:Webarchiv/Wartung/URL}}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Archiv-URL im Parameter 'url' anstatt URL der Originalquelle. Entferne den vor der Original-URL stehenden Mementobestandteil und setze den Archivierungszeitstempel in den Parameter 'wayback', 'webciteID', 'archive.today' oder 'archive-is' ein, sofern nicht bereits befüllt.|1}}
            }} 
       }}
  }} From Texture Virtualization to Massive Parallelization</ref> Texturen können so 128000×128000 Pixel und größer sein<ref><templatestyles src="Webarchiv/styles.css" />{{#if:20071015163515
      | {{#ifeq: 20071015163515 | *
    | Vorlage:Webarchiv/Wartung/Stern{{#if: Archivierte Kopie | {{#invoke:WLink|getEscapedTitle|Archivierte Kopie}} | {{#invoke:Webarchiv|getdomain|http://uk.gamespot.com/video/939982/6176261/id-tech-5-stage-demo-part-1}} }} (Archivversionen)
    | {{#iferror: {{#time: j. F Y|20071015163515}}
         | {{#if:  || }}Vorlage:Webarchiv/Wartung/DatumDer Wert des Parameters {{#if: wayback | wayback | Datum }} muss ein gültiger Zeitstempel der Form YYYYMMDDHHMMSS sein!
         | {{#if: Archivierte Kopie | {{#invoke:WLink|getEscapedTitle|Archivierte Kopie}} | {{#invoke:Webarchiv|getdomain|http://uk.gamespot.com/video/939982/6176261/id-tech-5-stage-demo-part-1}} }} {{#ifeq:  | [] | [ | ( }}Memento{{#if: {{#if: 2019-04-30 23:17:36 InternetArchiveBot | 2019-04-30 23:17:36 InternetArchiveBot |  }} |  des Vorlage:Referrer }} vom {{#time: j. F Y|20071015163515}} im Internet Archive{{#if:  | ;  }}{{#ifeq:  | [] | ] | ) }}
      }}
  }}
      | {{#if:
          | {{#iferror: {{#time: j. F Y|{{{webciteID}}}}}
    | {{#switch: {{#invoke:Str|len|{{{webciteID}}}}}
       | 16= {{#if: Archivierte Kopie | {{#invoke:WLink|getEscapedTitle|Archivierte Kopie}} | {{#invoke:Webarchiv|getdomain|http://uk.gamespot.com/video/939982/6176261/id-tech-5-stage-demo-part-1}} }} {{#ifeq:  | [] | [ | ( }}Memento{{#if: {{#if: 2019-04-30 23:17:36 InternetArchiveBot | 2019-04-30 23:17:36 InternetArchiveBot |  }} |  des Vorlage:Referrer }} vom {{#time: j. F Y| 19700101000000 + {{#expr: floor {{#expr: {{#invoke:Str|sub|{{{webciteID}}}|1|10}}/86400}} }} days}} auf WebCite{{#if:  | ;  }}{{#ifeq:  | [] | ] | ) }}
       | 9 = {{#if: Archivierte Kopie | {{#invoke:WLink|getEscapedTitle|Archivierte Kopie}} | {{#invoke:Webarchiv|getdomain|http://uk.gamespot.com/video/939982/6176261/id-tech-5-stage-demo-part-1}} }} {{#ifeq:  | [] | [ | ( }}Memento{{#if: {{#if: 2019-04-30 23:17:36 InternetArchiveBot | 2019-04-30 23:17:36 InternetArchiveBot |  }} |  des Vorlage:Referrer}} vom {{#time: j. F Y| 19700101000000 + {{#expr: floor {{#expr: {{#invoke:Str|sub|{{#invoke:Expr|base62|{{{webciteID}}}}}|1|10}}/86400}} }} days}} auf WebCite{{#if:  | ;  }}{{#ifeq:  | [] | ] | ) }}
       | #default= Der Wert des Parameters {{#if: webciteID | webciteID | ID }} muss entweder ein Zeitstempel der Form YYYYMMDDHHMMSS oder ein Schüsselwert mit 9 Zeichen oder eine 16-stellige Zahl sein!Vorlage:Webarchiv/Wartung/webcitation{{#if:  || }}
      }}
    | c|{{{webciteID}}}}} {{#if: Archivierte Kopie | {{#invoke:WLink|getEscapedTitle|Archivierte Kopie}} | {{#invoke:Webarchiv|getdomain|http://uk.gamespot.com/video/939982/6176261/id-tech-5-stage-demo-part-1}} }} (Memento{{#if: {{#if: 2019-04-30 23:17:36 InternetArchiveBot | 2019-04-30 23:17:36 InternetArchiveBot |  }} |  des Vorlage:Referrer}} vom {{#time: j. F Y|{{{webciteID}}}}} auf WebCite{{#if:  | ;  }}{{#ifeq:  | [] | ] | ) }}
  }}
          | {{#if: 
              | Vorlage:Webarchiv/Today
              | {{#if:
                      | Vorlage:Webarchiv/Generisch
                      | {{#if: Archivierte Kopie | {{#invoke:WLink|getEscapedTitle|Archivierte Kopie}} | {{#invoke:Webarchiv|getdomain|http://uk.gamespot.com/video/939982/6176261/id-tech-5-stage-demo-part-1}} }}  
                 }}}}}}}}{{#if:2019-04-30 23:17:36 InternetArchiveBot
    | Vorlage:Webarchiv/archiv-bot
  }}{{#invoke:TemplatePar|check
     |all      = url=
     |opt      = text= wayback= webciteID= archive-is= archive-today= archiv-url= archiv-datum= ()= archiv-bot= format= original=
     |cat      = Wikipedia:Vorlagenfehler/Vorlage:Webarchiv
     |errNS    = 0
     |template = Vorlage:Webarchiv
     |format   = *
     |preview  = 1
  }}{{#ifexpr: {{#if:20071015163515|1|0}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}} <> 1
    | {{#if:  || }}Vorlage:Webarchiv/Wartung/Parameter{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Genau einer der Parameter 'wayback', 'webciteID', 'archive-today', 'archive-is' oder 'archiv-url' muss angegeben werden.|1}}
  }}{{#if: 
    | {{#switch: {{#invoke:Webarchiv|getdomain|{{{archiv-url}}}}}
        | web.archive.org = 
          {{#if:  || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Im Parameter 'archiv-url' wurde URL von Internet Archive erkannt, bitte Parameter 'wayback' benutzen.|1}} 
        | webcitation.org = 
          {{#if:  || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Im Parameter 'archiv-url' wurde URL von WebCite erkannt, bitte Parameter 'webciteID' benutzen.|1}} 
        | archive.today |archive.is |archive.ph |archive.fo |archive.li |archive.md |archive.vn = 
          {{#if:  || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Im Parameter 'archiv-url' wurde URL von archive.today erkannt, bitte Parameter 'archive-today' benutzen.|1}}
      }}{{#if: 
         | {{#iferror: {{#iferror:{{#invoke:Vorlage:FormatDate|Execute}}|}}
             | {{#if:  || }}Vorlage:Webarchiv/Wartung/Parameter{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Der Wert des Parameter 'archiv-datum' ist ungültig oder hat ein ungültiges Format.|1}}
          |  }} 
         | {{#if:  || }}Vorlage:Webarchiv/Wartung/Parameter{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Der Pflichtparameter 'archiv-datum' wurde nicht angegeben.|1}}
      }}
    | {{#if: 
         | {{#if:  || }}Vorlage:Webarchiv/Wartung/Parameter{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Der Parameter 'archiv-datum' ist nur in Verbindung mit 'archiv-url' angebbar.|1}}
      }}
  }}{{#if:{{#invoke:URLutil|isHostPathResource|http://uk.gamespot.com/video/939982/6176261/id-tech-5-stage-demo-part-1}}
    || {{#if:  || }}
  }}{{#if: Archivierte Kopie
    | {{#if: {{#invoke:WLink|isBracketedLink|Archivierte Kopie}}
        | {{#if:  || }}
      }}
    | {{#if:  || }}Vorlage:Webarchiv/Wartung/Linktext_fehlt
  }}{{#switch: 
    |addlarchives|addlpages= {{#if:  || }}{{#if: 1 |Vorlage:Webarchiv/Wartung/Parameter}}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: enWP-Wert im Parameter 'format'.|1}}
  }}{{#ifeq: {{#invoke:Str|find|http://uk.gamespot.com/video/939982/6176261/id-tech-5-stage-demo-part-1%7Carchiv}} |-1
    || {{#ifeq: {{#invoke:Str|find|{{#invoke:Str|cropleft|http://uk.gamespot.com/video/939982/6176261/id-tech-5-stage-demo-part-1%7C4}}%7Chttp}} |-1
         || {{#switch: {{#invoke:Webarchiv|getdomain|http://uk.gamespot.com/video/939982/6176261/id-tech-5-stage-demo-part-1 }}
              | abendblatt.de | daserste.ndr.de | inarchive.com | webcitation.org = 
              | #default = {{#if:  || }}{{#if: 1 |Vorlage:Webarchiv/Wartung/URL}}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Archiv-URL im Parameter 'url' anstatt URL der Originalquelle. Entferne den vor der Original-URL stehenden Mementobestandteil und setze den Archivierungszeitstempel in den Parameter 'wayback', 'webciteID', 'archive.today' oder 'archive-is' ein, sofern nicht bereits befüllt.|1}}
            }} 
       }}
  }} Id Tech 5 stage demo</ref> und werden nicht nur für Terrain, sondern unter anderem auch für Models und Sprites verwendet.

Weblinks

Einzelnachweise

<references />