ActionScript® 3.0 Referenzhandbuch für die Adobe® Flash®-Plattform
Home  |  Liste der Pakete und Klassen ausblenden |  Pakete  |  Klassen  |  Neue Funktionen  |  Stichwortverzeichnis  |  Anhänge  |  Warum auf Englisch?
Filter: AIR 30.0 und früher, Flash Player 30.0 und früher, Flash Lite 4
Flex 4.6 und früher, Flash Pro CS6 und früher
Filter ausblenden
flash.display3D 

Program3D  - AS3

Paketex

Oberste Ebene
adobe.utils
air.desktop
air.net
air.update
air.update.events
coldfusion.air
coldfusion.air.errors
coldfusion.air.events
coldfusion.service
coldfusion.service.events
coldfusion.service.mxml
com.adobe.acm.solutions.authoring.domain.extensions
com.adobe.acm.solutions.ccr.domain.extensions
com.adobe.consulting.pst.vo
com.adobe.dct.component
com.adobe.dct.component.datadictionary
com.adobe.dct.component.datadictionaryElement
com.adobe.dct.component.dataElementsPanel
com.adobe.dct.component.toolbars
com.adobe.dct.event
com.adobe.dct.exp
com.adobe.dct.model
com.adobe.dct.service
com.adobe.dct.service.provider
com.adobe.dct.transfer
com.adobe.dct.util
com.adobe.dct.view
com.adobe.ep.taskmanagement.domain
com.adobe.ep.taskmanagement.event
com.adobe.ep.taskmanagement.filter
com.adobe.ep.taskmanagement.services
com.adobe.ep.taskmanagement.util
com.adobe.ep.ux.attachmentlist.component
com.adobe.ep.ux.attachmentlist.domain
com.adobe.ep.ux.attachmentlist.domain.events
com.adobe.ep.ux.attachmentlist.domain.renderers
com.adobe.ep.ux.attachmentlist.skin
com.adobe.ep.ux.attachmentlist.skin.renderers
com.adobe.ep.ux.content.event
com.adobe.ep.ux.content.factory
com.adobe.ep.ux.content.handlers
com.adobe.ep.ux.content.managers
com.adobe.ep.ux.content.model.asset
com.adobe.ep.ux.content.model.preview
com.adobe.ep.ux.content.model.relation
com.adobe.ep.ux.content.model.search
com.adobe.ep.ux.content.model.toolbar
com.adobe.ep.ux.content.search
com.adobe.ep.ux.content.services
com.adobe.ep.ux.content.services.load
com.adobe.ep.ux.content.services.permissions
com.adobe.ep.ux.content.services.preview
com.adobe.ep.ux.content.services.providers
com.adobe.ep.ux.content.services.query
com.adobe.ep.ux.content.services.relationships
com.adobe.ep.ux.content.services.search.lccontent
com.adobe.ep.ux.content.services.version
com.adobe.ep.ux.content.view
com.adobe.ep.ux.content.view.components.activate
com.adobe.ep.ux.content.view.components.grid
com.adobe.ep.ux.content.view.components.grid.hover
com.adobe.ep.ux.content.view.components.grid.hover.component
com.adobe.ep.ux.content.view.components.grid.renderers
com.adobe.ep.ux.content.view.components.relationships
com.adobe.ep.ux.content.view.components.review
com.adobe.ep.ux.content.view.components.search.renderers
com.adobe.ep.ux.content.view.components.searchpod
com.adobe.ep.ux.content.view.components.toolbar
com.adobe.ep.ux.content.view.components.toolbar.controlRenderers
com.adobe.ep.ux.content.view.components.version
com.adobe.ep.ux.documentsubmit.component
com.adobe.ep.ux.documentsubmit.domain
com.adobe.ep.ux.documentsubmit.skin
com.adobe.ep.ux.taskaction.component
com.adobe.ep.ux.taskaction.domain
com.adobe.ep.ux.taskaction.domain.events
com.adobe.ep.ux.taskaction.skin
com.adobe.ep.ux.taskdetails.component
com.adobe.ep.ux.taskdetails.domain
com.adobe.ep.ux.taskdetails.skin
com.adobe.ep.ux.tasklist.component
com.adobe.ep.ux.tasklist.domain
com.adobe.ep.ux.tasklist.skin
com.adobe.ep.ux.webdocumentviewer.domain
com.adobe.exm.expression
com.adobe.exm.expression.error
com.adobe.exm.expression.event
com.adobe.exm.expression.impl
com.adobe.fiber.runtime.lib
com.adobe.fiber.services
com.adobe.fiber.services.wrapper
com.adobe.fiber.styles
com.adobe.fiber.util
com.adobe.fiber.valueobjects
com.adobe.gravity.binding
com.adobe.gravity.context
com.adobe.gravity.flex.bundleloader
com.adobe.gravity.flex.progress
com.adobe.gravity.flex.serviceloader
com.adobe.gravity.framework
com.adobe.gravity.init
com.adobe.gravity.service.bundleloader
com.adobe.gravity.service.logging
com.adobe.gravity.service.manifest
com.adobe.gravity.service.progress
com.adobe.gravity.tracker
com.adobe.gravity.ui
com.adobe.gravity.utility
com.adobe.gravity.utility.async
com.adobe.gravity.utility.error
com.adobe.gravity.utility.events
com.adobe.gravity.utility.factory
com.adobe.gravity.utility.flex.async
com.adobe.gravity.utility.logging
com.adobe.gravity.utility.message
com.adobe.gravity.utility.sequence
com.adobe.gravity.utility.url
com.adobe.guides.control
com.adobe.guides.domain
com.adobe.guides.i18n
com.adobe.guides.spark.components.skins
com.adobe.guides.spark.components.skins.mx
com.adobe.guides.spark.headers.components
com.adobe.guides.spark.headers.skins
com.adobe.guides.spark.layouts.components
com.adobe.guides.spark.layouts.skins
com.adobe.guides.spark.navigators.components
com.adobe.guides.spark.navigators.renderers
com.adobe.guides.spark.navigators.skins
com.adobe.guides.spark.util
com.adobe.guides.spark.wrappers.components
com.adobe.guides.spark.wrappers.skins
com.adobe.guides.submit
com.adobe.icc.dc.domain
com.adobe.icc.dc.domain.factory
com.adobe.icc.editors.events
com.adobe.icc.editors.handlers
com.adobe.icc.editors.managers
com.adobe.icc.editors.model
com.adobe.icc.editors.model.config
com.adobe.icc.editors.model.el
com.adobe.icc.editors.model.el.operands
com.adobe.icc.editors.model.el.operators
com.adobe.icc.enum
com.adobe.icc.external.dc
com.adobe.icc.obj
com.adobe.icc.services
com.adobe.icc.services.category
com.adobe.icc.services.config
com.adobe.icc.services.download
com.adobe.icc.services.export
com.adobe.icc.services.external
com.adobe.icc.services.formbridge
com.adobe.icc.services.fragmentlayout
com.adobe.icc.services.layout
com.adobe.icc.services.letter
com.adobe.icc.services.locator
com.adobe.icc.services.module
com.adobe.icc.services.render
com.adobe.icc.services.submit
com.adobe.icc.services.user
com.adobe.icc.token
com.adobe.icc.vo
com.adobe.icc.vo.render
com.adobe.icomm.assetplacement.controller
com.adobe.icomm.assetplacement.controller.utils
com.adobe.icomm.assetplacement.data
com.adobe.icomm.assetplacement.model
com.adobe.livecycle.assetmanager.client
com.adobe.livecycle.assetmanager.client.event
com.adobe.livecycle.assetmanager.client.handler
com.adobe.livecycle.assetmanager.client.managers
com.adobe.livecycle.assetmanager.client.model
com.adobe.livecycle.assetmanager.client.model.cms
com.adobe.livecycle.assetmanager.client.service
com.adobe.livecycle.assetmanager.client.service.search
com.adobe.livecycle.assetmanager.client.service.search.cms
com.adobe.livecycle.assetmanager.client.utils
com.adobe.livecycle.content
com.adobe.livecycle.rca.model
com.adobe.livecycle.rca.model.constant
com.adobe.livecycle.rca.model.document
com.adobe.livecycle.rca.model.participant
com.adobe.livecycle.rca.model.reminder
com.adobe.livecycle.rca.model.stage
com.adobe.livecycle.rca.service
com.adobe.livecycle.rca.service.core
com.adobe.livecycle.rca.service.core.delegate
com.adobe.livecycle.rca.service.process
com.adobe.livecycle.rca.service.process.delegate
com.adobe.livecycle.rca.token
com.adobe.livecycle.ria.security.api
com.adobe.livecycle.ria.security.service
com.adobe.mosaic.layouts
com.adobe.mosaic.layouts.dragAndDrop
com.adobe.mosaic.layouts.interfaces
com.adobe.mosaic.mxml
com.adobe.mosaic.om.constants
com.adobe.mosaic.om.events
com.adobe.mosaic.om.impl
com.adobe.mosaic.om.interfaces
com.adobe.mosaic.skinning
com.adobe.mosaic.sparklib.editors
com.adobe.mosaic.sparklib.optionMenu
com.adobe.mosaic.sparklib.scrollableMenu
com.adobe.mosaic.sparklib.scrollableMenu.skins
com.adobe.mosaic.sparklib.tabLayout
com.adobe.mosaic.sparklib.tabLayout.events
com.adobe.mosaic.sparklib.tabLayout.layouts
com.adobe.mosaic.sparklib.tabLayout.skins
com.adobe.mosaic.sparklib.text
com.adobe.mosaic.sparklib.util
com.adobe.solutions.acm.authoring.presentation
com.adobe.solutions.acm.authoring.presentation.actionbar
com.adobe.solutions.acm.authoring.presentation.common
com.adobe.solutions.acm.authoring.presentation.events
com.adobe.solutions.acm.authoring.presentation.fragment
com.adobe.solutions.acm.authoring.presentation.letter
com.adobe.solutions.acm.authoring.presentation.letter.data
com.adobe.solutions.acm.authoring.presentation.preview
com.adobe.solutions.acm.authoring.presentation.rte
com.adobe.solutions.acm.ccr.presentation
com.adobe.solutions.acm.ccr.presentation.contentcapture
com.adobe.solutions.acm.ccr.presentation.contentcapture.events
com.adobe.solutions.acm.ccr.presentation.contentcapture.preview
com.adobe.solutions.acm.ccr.presentation.datacapture
com.adobe.solutions.acm.ccr.presentation.datacapture.renderers
com.adobe.solutions.acm.ccr.presentation.pdf
com.adobe.solutions.exm
com.adobe.solutions.exm.authoring
com.adobe.solutions.exm.authoring.components.controls
com.adobe.solutions.exm.authoring.components.toolbars
com.adobe.solutions.exm.authoring.domain
com.adobe.solutions.exm.authoring.domain.expression
com.adobe.solutions.exm.authoring.domain.impl
com.adobe.solutions.exm.authoring.domain.method
com.adobe.solutions.exm.authoring.domain.variable
com.adobe.solutions.exm.authoring.enum
com.adobe.solutions.exm.authoring.events
com.adobe.solutions.exm.authoring.model
com.adobe.solutions.exm.authoring.renderer
com.adobe.solutions.exm.authoring.view
com.adobe.solutions.exm.expression
com.adobe.solutions.exm.impl
com.adobe.solutions.exm.impl.method
com.adobe.solutions.exm.method
com.adobe.solutions.exm.mock
com.adobe.solutions.exm.mock.method
com.adobe.solutions.exm.runtime
com.adobe.solutions.exm.runtime.impl
com.adobe.solutions.exm.variable
com.adobe.solutions.prm.constant
com.adobe.solutions.prm.domain
com.adobe.solutions.prm.domain.factory
com.adobe.solutions.prm.domain.impl
com.adobe.solutions.prm.domain.manager
com.adobe.solutions.prm.presentation.asset
com.adobe.solutions.prm.presentation.constant
com.adobe.solutions.prm.presentation.document
com.adobe.solutions.prm.presentation.event
com.adobe.solutions.prm.presentation.file
com.adobe.solutions.prm.presentation.project
com.adobe.solutions.prm.presentation.team
com.adobe.solutions.prm.presentation.util
com.adobe.solutions.prm.service
com.adobe.solutions.prm.services.impl
com.adobe.solutions.prm.vo
com.adobe.solutions.rca.constant
com.adobe.solutions.rca.domain
com.adobe.solutions.rca.domain.common
com.adobe.solutions.rca.domain.factory
com.adobe.solutions.rca.domain.impl
com.adobe.solutions.rca.domain.impl.manager
com.adobe.solutions.rca.domain.manager
com.adobe.solutions.rca.presentation
com.adobe.solutions.rca.presentation.comment
com.adobe.solutions.rca.presentation.constant
com.adobe.solutions.rca.presentation.event
com.adobe.solutions.rca.presentation.gantt
com.adobe.solutions.rca.presentation.gantt.ruler
com.adobe.solutions.rca.presentation.template
com.adobe.solutions.rca.presentation.template.audit
com.adobe.solutions.rca.presentation.template.definition
com.adobe.solutions.rca.presentation.template.documents
com.adobe.solutions.rca.presentation.template.stages
com.adobe.solutions.rca.presentation.util
com.adobe.solutions.rca.service
com.adobe.solutions.rca.services.impl
com.adobe.solutions.rca.vo
com.adobe.solutions.rca.vo.um
com.adobe.viewsource
fl.accessibility
fl.containers
fl.controls
fl.controls.dataGridClasses
fl.controls.listClasses
fl.controls.progressBarClasses
fl.core
fl.data
fl.display
fl.events
fl.ik
fl.lang
fl.livepreview
fl.managers
fl.motion
fl.motion.easing
fl.rsl
fl.text
fl.transitions
fl.transitions.easing
fl.video
flash.accessibility
flash.concurrent
flash.crypto
flash.data
flash.desktop
flash.display
flash.display3D
flash.display3D.textures
flash.errors
flash.events
flash.external
flash.filesystem
flash.filters
flash.geom
flash.globalization
flash.html
flash.media
flash.net
flash.net.dns
flash.net.drm
flash.notifications
flash.permissions
flash.printing
flash.profiler
flash.sampler
flash.security
flash.sensors
flash.system
flash.text
flash.text.engine
flash.text.ime
flash.ui
flash.utils
flash.xml
flashx.textLayout
flashx.textLayout.compose
flashx.textLayout.container
flashx.textLayout.conversion
flashx.textLayout.edit
flashx.textLayout.elements
flashx.textLayout.events
flashx.textLayout.factory
flashx.textLayout.formats
flashx.textLayout.operations
flashx.textLayout.utils
flashx.undo
ga.controls
ga.layouts
ga.model
ga.uiComponents
ga.util
ga.views
ga.wrappers
lc.foundation
lc.foundation.domain
lc.foundation.events
lc.foundation.ui
lc.foundation.util
lc.preloader
lc.procmgmt
lc.procmgmt.commands
lc.procmgmt.domain
lc.procmgmt.events
lc.procmgmt.formbridge
lc.procmgmt.impl
lc.procmgmt.ui.attachments
lc.procmgmt.ui.controls
lc.procmgmt.ui.controls.card
lc.procmgmt.ui.controls.renderer
lc.procmgmt.ui.help
lc.procmgmt.ui.layout
lc.procmgmt.ui.presentationmodel
lc.procmgmt.ui.process
lc.procmgmt.ui.search
lc.procmgmt.ui.startpoint
lc.procmgmt.ui.task
lc.procmgmt.ui.task.form
lc.procmgmt.ui.task.form.commands
lc.procmgmt.ui.tracking
mx.accessibility
mx.automation
mx.automation.air
mx.automation.delegates
mx.automation.delegates.advancedDataGrid
mx.automation.delegates.charts
mx.automation.delegates.containers
mx.automation.delegates.controls
mx.automation.delegates.controls.dataGridClasses
mx.automation.delegates.controls.fileSystemClasses
mx.automation.delegates.core
mx.automation.delegates.flashflexkit
mx.automation.events
mx.binding
mx.binding.utils
mx.charts
mx.charts.chartClasses
mx.charts.effects
mx.charts.effects.effectClasses
mx.charts.events
mx.charts.renderers
mx.charts.series
mx.charts.series.items
mx.charts.series.renderData
mx.charts.styles
mx.collections
mx.collections.errors
mx.containers
mx.containers.accordionClasses
mx.containers.dividedBoxClasses
mx.containers.errors
mx.containers.utilityClasses
mx.controls
mx.controls.advancedDataGridClasses
mx.controls.dataGridClasses
mx.controls.listClasses
mx.controls.menuClasses
mx.controls.olapDataGridClasses
mx.controls.scrollClasses
mx.controls.sliderClasses
mx.controls.textClasses
mx.controls.treeClasses
mx.controls.videoClasses
mx.core
mx.core.windowClasses
mx.data
mx.data.crypto
mx.data.errors
mx.data.events
mx.data.messages
mx.data.mxml
mx.data.offline.errors
mx.data.utils
mx.effects
mx.effects.easing
mx.effects.effectClasses
mx.events
mx.filters
mx.flash
mx.formatters
mx.geom
mx.graphics
mx.graphics.codec
mx.graphics.shaderClasses
mx.logging
mx.logging.errors
mx.logging.targets
mx.managers
mx.messaging
mx.messaging.channels
mx.messaging.config
mx.messaging.errors
mx.messaging.events
mx.messaging.management
mx.messaging.messages
mx.modules
mx.netmon
mx.olap
mx.olap.aggregators
mx.preloaders
mx.printing
mx.resources
mx.rpc
mx.rpc.events
mx.rpc.http
mx.rpc.http.mxml
mx.rpc.livecycle
mx.rpc.mxml
mx.rpc.remoting
mx.rpc.remoting.mxml
mx.rpc.soap
mx.rpc.soap.mxml
mx.rpc.wsdl
mx.rpc.xml
mx.skins
mx.skins.halo
mx.skins.spark
mx.skins.wireframe
mx.skins.wireframe.windowChrome
mx.states
mx.styles
mx.utils
mx.validators
org.osmf.containers
org.osmf.display
org.osmf.elements
org.osmf.events
org.osmf.layout
org.osmf.logging
org.osmf.media
org.osmf.metadata
org.osmf.net
org.osmf.net.dvr
org.osmf.net.httpstreaming
org.osmf.net.metrics
org.osmf.net.qos
org.osmf.net.rtmpstreaming
org.osmf.net.rules
org.osmf.traits
org.osmf.utils
spark.accessibility
spark.automation.delegates
spark.automation.delegates.components
spark.automation.delegates.components.gridClasses
spark.automation.delegates.components.mediaClasses
spark.automation.delegates.components.supportClasses
spark.automation.delegates.skins.spark
spark.automation.events
spark.collections
spark.components
spark.components.calendarClasses
spark.components.gridClasses
spark.components.mediaClasses
spark.components.supportClasses
spark.components.windowClasses
spark.core
spark.effects
spark.effects.animation
spark.effects.easing
spark.effects.interpolation
spark.effects.supportClasses
spark.events
spark.filters
spark.formatters
spark.formatters.supportClasses
spark.globalization
spark.globalization.supportClasses
spark.layouts
spark.layouts.supportClasses
spark.managers
spark.modules
spark.preloaders
spark.primitives
spark.primitives.supportClasses
spark.skins
spark.skins.mobile
spark.skins.mobile.supportClasses
spark.skins.spark
spark.skins.spark.mediaClasses.fullScreen
spark.skins.spark.mediaClasses.normal
spark.skins.spark.windowChrome
spark.skins.wireframe
spark.skins.wireframe.mediaClasses
spark.skins.wireframe.mediaClasses.fullScreen
spark.transitions
spark.utils
spark.validators
spark.validators.supportClasses
xd.core.axm.enterprise.view.components
xd.core.axm.enterprise.view.skins
xd.core.axm.view.components
xd.core.axm.view.components.support

Sprachelemente

Globale Konstanten
Globale Funktionen
Operatoren
Anweisungen, Schlüsselwörter und Direktiven
Sondertypen

Anhänge

Neue Funktionen
Compiler-Fehler
Compiler-Warnungen
Laufzeitfehler
Migration zu ActionScript 3
Unterstützte Zeichensätze
Nur MXML-Tags
Motion-XML-Elemente
Timed Text-Tags
Liste veralteter Elemente
Konstanten für die Implementierung von Eingabehilfen
Verwendung der ActionScript-Beispiele
Rechtliche Hinweise
Paketflash.display3D
Klassepublic final class Program3D
VererbungProgram3D Inheritance Object

Sprachversion: ActionScript 3.0
Laufzeitversionen: Flash Player 11, AIR 2

Die Program3D-Klasse stellt zwei Renderprogramme (auch Shader genannt) dar, die in den Renderkontext hochgeladen werden.

Programme, die von einem Program3D-Objekt verwaltet werden, steuern das gesamte Rendern von Dreiecken während eines Aufrufs von Context3D drawTriangles. Laden Sie den binären Bytecode mit der upload-Methode in den Renderkontext hoch. (Nach dem Hochladen wird nicht länger auf das Programm im Originalarray verwiesen; das Ändern oder Verwerfen des Ausgangsarrays ändert das Programm nicht.)

Programme bestehen immer aus zwei verknüpften Teilen: einem Vertex- und einem Fragmentprogramm.

  1. Das Vertexprogramm arbeitet mit Daten, die in VertexBuffer3D-Objekten definiert sind, und ist für das Projizieren von Vertizes in den Clipspace sowie das Übergeben ggf. erforderlicher Vertexdaten, zum Beispiel Farbe, an den Fragmentshader zuständig.
  2. Der Fragmentshader arbeitet mit den Attributen, die vom Vertexprogramm übergeben werden, und produziert eine Farbe für jedes gerasterte Fragment eines Dreiecks, sodass Pixelfarben daraus resultieren. Beachten Sie, dass in der Literatur zur 3D-Programmierung verschiedene Namen für Fragmentprogramme verwendet werden, zum Beispiel Fragmentshader und Pixelshader.

Bestimmen Sie, welches Programmpaar für nachfolgende Rendervorgänge verwendet werden sollen, indem Sie die entsprechende Program3D-Instanz an die setProgram()-Methode von Context3D übergeben.

Sie können ein Program3D-Objekt nicht direkt erstellen; verwenden Sie stattdessen die createProgram()-Methode von Context3D.

Verwandte API-Elemente



Öffentliche Eigenschaften
 EigenschaftDefiniert von
 Inheritedconstructor : Object
Ein Verweis auf das Klassenobjekt oder die Konstruktorfunktion für eine angegebene Objektinstanz.
Object
Öffentliche Methoden
 MethodeDefiniert von
  
Gibt alle Ressourcen frei, die diesem Objekt zugeordnet sind.
Program3D
 Inherited
Gibt an, ob für ein Objekt eine bestimmte Eigenschaft definiert wurde.
Object
 Inherited
Gibt an, ob eine Instanz der Object-Klasse in der Prototypkette des Objekts vorhanden ist, das als Parameter angegeben wurde.
Object
 Inherited
Gibt an, ob die angegebene Eigenschaft vorhanden ist und durchlaufen werden kann.
Object
 Inherited
Legt die Verfügbarkeit einer dynamischen Eigenschaft für Schleifenoperationen fest.
Object
 Inherited
Gibt die Stringdarstellung dieses Objekts zurück, formatiert entsprechend den Konventionen des Gebietsschemas.
Object
 Inherited
Gibt das angegebene Objekt als String zurück.
Object
  
upload(vertexProgram:ByteArray, fragmentProgram:ByteArray):void
Lädt ein Paar von Renderprogrammen hoch, die im AGAL-Bytecode (Adobe Graphics Assembly Language) ausgedrückt werden.
Program3D
 Inherited
Gibt den Grundwert des angegebenen Objekts zurück.
Object
Methodendetails

dispose

()Methode
public function dispose():void

Sprachversion: ActionScript 3.0
Laufzeitversionen: Flash Player 11, AIR 3

Gibt alle Ressourcen frei, die diesem Objekt zugeordnet sind. Nachdem ein Program3D-Objekt verworfen wurde, schlagen der Aufruf von upload() und das Rendern mit diesem Objekt fehl.

upload

()Methode 
public function upload(vertexProgram:ByteArray, fragmentProgram:ByteArray):void

Sprachversion: ActionScript 3.0
Laufzeitversionen: Flash Player 11, AIR 3

Lädt ein Paar von Renderprogrammen hoch, die im AGAL-Bytecode (Adobe Graphics Assembly Language) ausgedrückt werden.

Der Programmbytecode kann mit den Pixel Bender-Offlinetools erstellt werden. Er kann auch dynamisch erstellt werden. Die AGALMiniAssembler-Klasse ist eine Utility-Klasse, die Programme in der AGAL-Sprache in AGAL-Bytecode kompiliert. Die Klasse ist nicht Teil der Laufzeitumgebung. Wenn Sie die Shaderprogramme hochladen, wird der Bytecode in die native Shadersprache für das aktuelle Gerät (zum Beispiel OpenGL oder Direct3D) kompiliert. Die Laufzeitumgebung überprüft den Bytecode beim Hochladen.

Die Programme werden jedes Mal ausgeführt, wenn die drawTriangles()-Methode von Context3D aufgerufen wird. Das Vertexprogramm wird einmal pro Vertex in der Liste der zu zeichnenden Dreiecke ausgeführt. Das Fragmentprogramm wird einmal pro Pixel auf der Oberfläche des Dreiecks ausgeführt.

Die von einem Shaderprogramm verwendeten „Variablen“ werden Register genannt. Die folgenden Register sind definiert:

NameAnzahl pro FragmentprogrammAnzahl pro VertexprogrammZweck
Attribute8Vertexshadereingabe; aus einem Vertexpuffer lesen, der mit Context3D.setVertexBufferAt() angegeben wird.
Constant28128Shadereingabe; mit der Context3D.setProgramConstants()-Funktionsfamilie festlegen.
Temporary88Temporäres Register für die Berechnung, außerhalb des Programms nicht zugänglich.
Output11Shaderausgabe: in einem Vertexprogramm ist die Ausgabe die Clipspaceposition; in einem Fragmentprogramm ist die Ausgabe eine Farbe.
Varying88Interpolierte Daten zwischen Vertex- und Fragmentprogrammen übertragen. Die unterschiedlichen Register aus dem Vertexprogramm werden als Eingabe in das Fragmentprogramm angewendet. Die Werte werden entsprechend dem Abstand von den Dreiecksvertizes interpoliert.
Sampler8Fragmentshadereingabe; aus einer mit Context3D.setTextureAt() angegebenen Textur lesen.

Ein Vertexprogramm empfängt Eingaben aus zwei Quellen: Vertexpuffer und Konstantenregister. Legen Sie mit der setVertexBufferAt() von Context3D fest, welche Vertexdaten für ein bestimmtes Vertex-Attribut-Register verwendet werden sollen. Sie können bis zu acht Eingaberegister für Vertexattribute definieren. Die Vertexattributwerte werden für jeden Vertex in der Dreieckliste aus dem Vertexpuffer gelesen und im Attributregister platziert. Legen Sie Konstantenregister mithilfe der Context3D-Methoden setProgramConstantsFromMatrix() oder setProgramConstantsFromVector() fest. Konstantenregister enthalten denselben Wert für jeden Vertex in der Dreieckliste. (Sie können die Konstantenwerte nur zwischen den Aufrufen von drawTriangles() ändern.)

Ein Vertexprogramm ist für die Projektion der Dreieckvertizes in den Clipspace (der kanonische Anzeigebereich innerhalb ±1 auf der x- und y-Achse und 0-1 auf der z-Achse) sowie für das Platzieren der transformierten Koordinaten in das Ausgaberegister zuständig. (Normalerweise wird die entsprechende Projektionsmatrix dem Shader mit einem Satz Konstantenregister bereitgestellt.) Das Vertexprogramm muss auch alle Vertexattribute oder berechneten Werte, die vom Fragmentprogramm benötigt werden, in einen speziellen Satz von Variablen kopieren, die Varying-Register genannt werden. Wenn ein Fragmentshader ausgeführt wird, wird der in einem Varying-Register bereitgestellte Wert entsprechend dem Abstand des aktuellen Fragments von jedem Dreieckvertex linear interpoliert.

Ein Fragmentprogramm empfängt Eingaben von den Varying-Registern und aus einem separaten Satz von Konstantenregistern (mit setProgramConstantsFromMatrix() oder setProgramConstantsFromVector() festgelegt). Sie können Texturdaten auch aus Texturen lesen, die mit Sampler-Registern in den Renderkontext hochgeladen wurden. Legen Sie fest, auf welche Textur mit einem bestimmten Samplerregister zugegriffen werden soll, indem Sie die Context3D-Methode setTextureAt() verwenden. Das Fragmentprogramm ist dafür zuständig, sein Ausgaberegister auf einen Farbwert festzulegen.

Parameter

vertexProgram:ByteArray — AGAL-Bytecode für das Vertexprogramm. Das ByteArray-Objekt muss das Little-Endian-Format verwenden.
 
fragmentProgram:ByteArray — AGAL-Bytecode für das Fragmentprogramm. Das ByteArray-Objekt muss das Little-Endian-Format verwenden.


Auslöser
TypeError — Nullzeigerfehler: wenn vertexProgram oder fragmentProgram null ist.
 
Error — Objekt verworfen: wenn das Program3D-Objekt entweder direkt durch einen Aufruf von dispose() oder indirekt durch einen Aufruf von dispose() verworfen wurde, oder wenn der Renderingkontext aufgrund eines Geräteverlusts verworfen wurde.
 
ArgumentError — Agal-Programm zu klein: wenn eines der Programmcodearrays kleiner als 31 Bytes Länge ist. Dies ist die Größe des Shaderbytecodes eines Programms mit einer Anweisung.
 
ArgumentError — Programm muss Little Endian sein: wenn einer der Programmbytecodearrays nicht Little Endian ist.
 
Error — Native Shaderkompilierung fehlgeschlagen: wenn die Ausgabe des AGAL-Übersetzers kein kompilierbares Programm in der nativen Sprache des Shaders ist. Dieser Fehler wird nur in Release-Playern ausgegeben.
 
Error — Native Shaderkompilierung für OpenGL fehlgeschlagen: wenn die Ausgabe des AGAL-Übersetzers kein kompilierbares Programm in der OpengGL-Shadersprache ist und Kompilierungsdiagnosen enthält. Dieser Fehler wird nur in Debug-Playern ausgegeben.
 
Error — Native Shaderkompilierung für D3D9 fehlgeschlagen: wenn die Ausgabe des AGAL-Übersetzers kein kompilierbares Programm in der Direct3D-Shadersprache ist und Kompilierungsdiagnosen enthält. Dieser Fehler wird nur in Debug-Playern ausgegeben.

Die folgenden Fehler werden ausgegeben, wenn die Validierung des AGAL-Bytecodes fehlschlägt:

 
Error — Kein AGAL-Programm: wenn das Magic Byte im Header falsch ist. Das erste Byte des Bytecode muss 0xa0 sein. Dieser Fehler kann anzeigen, dass das Bytearray auf die falsche Endian-Reihenfolge gesetzt ist.
 
Error — Falsche AGAL-Version: wenn die AGAL-Version von der aktuellen SWF-Version nicht unterstützt wird. Die AGAL-Version muss für die SWF-Version 13 auf 1 gesetzt sein.
 
Error — Falscher AGAL-Programmtyp; wenn der Bezeichner des AGAL-Programmtyps nicht gültig ist. Das dritte Byte im Bytecode muss 0xa1 sein. Dieser Fehler kann anzeigen, dass das Bytearray auf die falsche Endian-Reihenfolge gesetzt ist.
 
Error — Falscher AGAL-Shadertyp: wenn der Shadertypcode weder Fragment noch Vertex ist (1 oder 0).
 
Error — Ungültiger AGAL-Opcode - außerhalb des gültigen Bereichs: wenn im Tokenstream ein ungültiger Opcode erkannt wird.
 
Error — Ungültiger AGAL-Opcode - nicht implementiert: wenn im Tokenstream ein ungültiger Opcode erkannt wird.
 
Error — AGAL-Opcode nur in Fragmentprogrammen zulässig: wenn im Tokenstream des Vertexprogramms ein Opcode gefunden wird, der nur in Fragmentprogrammen zulässig ist, zum Beispiel KIL oder TEX.
 
Error — Falsche AGAL-Quelloperanden; wenn beide Quelloperanden Konstantenregister sind. Sie müssen das Ergebnis außerhalb des Shaderprogramms berechnen und es mit einem einzelnen Konstantenregister übergeben.
 
Error — Beide Operanden sind indirekte Lesevorgänge: wenn beide Operanden indirekt gelesen werden.
 
Error — Opcodeziel muss null sein: wenn ein Token mit einem Opcode (zum Beispiel KIL), der kein Ziel hat, einen Nichtnullwert für das Zielregister festlegt.
 
Error — Opcodeziel muss Maske verwenden: wenn ein Opcode, der ein Ergebnis mit nur 3 Komponenten produziert, ohne Maskierung verwendet wird.
 
Error — Zu viele Token: wenn ein AGAL-Programm zu viele Token (mehr als 200) enthält.
 
Error — Fragmentshadertyp: wenn der Fragmentprogrammtyp (Byte 6 des fragmentProgram-Parameters) nicht auf 1 gesetzt ist.
 
Error — Vertexshadertyp: wenn der Fragmentprogrammtyp (Byte 6 des vertexProgram-Parameters) nicht auf 0 gesetzt ist.
 
Error — Varying-Register gelesen, aber nicht geschrieben: wenn der Fragmentshader ein Varying-Register liest, in das nie vom Vertexshader geschrieben wurde.
 
Error — Unvollständiges Schreiben in Varying: wenn nur teilweise in ein Varying-Register geschrieben wird. Es ist erforderlich, dass in alle Komponenten eines Varying-Registers geschrieben wird.
 
Error — Fragment-Schreiben in alle Komponenten: wenn nur teilweise in eine Fragmentfarbausgabe geschrieben wird. Es ist erforderlich, dass in alle vier Komponenten der Farbausgabe geschrieben wird.
 
Error — Vertex-Schreiben in alle Komponenten: wenn nur teilweise in eine Vertexclipspaceausgabe geschrieben wird. Es ist erforderlich, dass in alle Komponenten der Vertexclipraumausgabe geschrieben wird.
 
Error — Nicht verwendeter Operand: wenn ein nicht verwendeter Operand in einem Token nicht vollständig auf null gesetzt wurde.
 
Error — Samplerregister nur in Fragment: wenn in einem Vertexprogramm ein Textursamplerregister verwendet wird.
 
Error — Samplerregister zweiter Operand: wenn ein Samplerregister als ein Ziel oder als erster Operand eines AGAL-Tokens verwendet wird.
 
Error — Indirekt nur in Vertex zulässig: wenn in einem Fragmentprogramm indirekte Adressierung verwendet wird.
 
Error — Indirekt nur in Konstantenregister: wenn in einem Nicht-Konstantenregister indirekte Adressierung verwendet wird.
 
Error — Indirekter Quellentyp: wenn der Typ der indirekten Quelle nicht Attribut, Konstante oder Temporär ist.
 
Error — Indirekte Adressierungsfelder müssen null sein: wenn nicht alle Felder der indirekten Adressierung null für direkte Adressierung sind.
 
Error — Varying-Register nur in Fragment lesen: wenn in einem Vertexprogramm ein Varying-Register gelesen wird. Varying-Register können in Vertexprogrammen geschrieben und in Fragmentprogrammen gelesen werden.
 
Error — Attributregister nur in Vertex lesen: wenn ein Attributregister in einem Fragmentprogramm gelesen wird. Attributregister können nur in Vertexprogrammen gelesen werden.
 
Error — Ausgaberegister kann nicht gelesen werden: wenn ein Ausgaberegister (Position oder Farbe) gelesen wird. In Ausgaberegister kann nur geschrieben werden, das Lesen ist nicht möglich.
 
Error — Temporäres Register ohne Schreiben gelesen: wenn ein temporäres Register gelesen wird, ohne dass zuvor in das Register geschrieben wurde.
 
Error — Temporäre Registerkomponente ohne Schreiben gelesen: wenn eine bestimmte temporäre Registerkomponente gelesen wird, ohne dass zuvor in die Komponente geschrieben wurde.
 
Error — In Samplerregister kann nicht geschrieben werden: wenn in ein Samplerregister geschrieben wird. Samplerregister können nur gelesen werden, das Schreiben in diese Register ist nicht möglich.
 
Error — Schreibvorgang für Varying-Register: wenn in einem Fragmentprogramm in ein Varying-Register geschrieben wird. Varying-Register können in Vertexprogrammen geschrieben und in Fragmentprogrammen gelesen werden.
 
Error — In Attributregister kann nicht geschrieben werden: wenn in ein Attributregister geschrieben wird. Attributregister können nur gelesen werden.
 
Error — In Konstantenregister kann nicht geschrieben werden: wenn in einem Fragmentprogramm in ein Konstantenregister geschrieben wird.
 
Error — Zielschreibmaske ist null: wenn eine Zielschreibmaske null ist. Alle Komponenten eines Ausgaberegisters müssen festgelegt werden.
 
Error — Reservierte AGAL-Bits müssen null sein: wenn beliebige reservierte Bits in einem Token nicht null sind. Dies gibt an, dass ein Fehler beim Erstellen des Bytecodes (oder fehlerhaft geschriebener Bytecode) vorliegt.
 
Error — Unbekannter Registertyp: wenn ein ungültiger Registertypindex verwendet wird.
 
Error — Samplerregister außerhalb des gültigen Bereichs: wenn ein ungültiger Samplerregisterindex verwendet wird.
 
Error — Varying-Register außerhalb des gültigen Bereichs: wenn ein ungültiger Varying-Registerindex verwendet wird.
 
Error — Attributregister außerhalb des gültigen Bereichs: wenn ein ungültiger Attributregisterindex verwendet wird.
 
Error — Konstantenregister außerhalb des gültigen Bereichs: wenn ein ungültiger Konstantenregisterindex verwendet wird.
 
Error — Ausgaberegister außerhalb des gültigen Bereichs: wenn ein ungültiger Ausgaberegisterindex verwendet wird.
 
Error — Temporäres Register außerhalb des gültigen Bereichs: wenn ein ungültiger temporärer Registerindex verwendet wird.
 
Error — Cubemapsampler muss Clamp verwenden: wenn ein Cubemapsampler den Wrapmodus nicht auf „clamp“ setzt.
 
Error — Unbekannte Samplerdimension: wenn ein Sample eine unbekannte Samplerdimension verwendet. (Es werden nur 2D- und Würfeltexturen unterstützt.)
 
Error — Unbekannter Filtermodus: wenn ein Sampler einen unbekannten Filtermodus verwendet. (Es werden nur Nächster-Nachbar-Filterung und lineare Filterung unterstützt.)
 
Error — Unbekannter Mipmapmodus: wenn ein Sampler einen unbekannten Mipmapmodus verwendet. (Es werden nur kein Mipmapmodus, Nächster-Nachbar-Mipmapmodus und linearer Mipmapmodus unterstützt.)
 
Error — Unbekannter Wrappingmodus: wenn ein Sampler einen unbekannten Wrappingmodus verwendet. (Es werden nur die Wrappingmodi „Clamp“ und „Wiederholen“ unterstützt.)
 
Error — Unbekanntes Sondertag: wenn ein Sampler ein unbekanntes Sondertag verwendet.
 
Error — Ausgabefarbe nicht maskierbar: Sie können das Farbausgaberegister in einem Fragmentprogramm nicht maskieren. Alle Komponenten des Farbregisters müssen festgelegt werden.
 
Error — Zweiter Operand muss Samplerregister sein: Der AGAL-Text-Opcode muss einen Sampler als zweiten Quelloperanden haben.
 
Error — Indirekt nicht zulässig: indirekte Adressierung wurde verwendet, wo dies nicht zulässig ist.
 
Error — Swizzle muss Skalar sein: Swizzling-Fehler.
 
Error — Swizzling für 2. Quelle nicht möglich: Swizzling-Fehler.
 
Error — Zweite Verwendung des Samplers muss dieselben Parameter haben: Alle Sampler, die auf dieselbe Textur zugreifen, müssen dieselben Einstellungen für Dimension, Wrap, Filter, Sondertag und Mipmap haben.
 
Error — 3768: DasStage3D -API darf nicht bei der Ausführung im Hintergrund verwendet werden.

Weitere Informationen

Verwandte API-Elemente





[ X ]Warum auf Englisch?
Inhalt des ActionScript 3.0-Referenzhandbuchs wird in englischer Sprache angezeigt

Nicht alle Teile des ActionScript 3.0-Referenzhandbuchs wurden in alle Sprachen übersetzt. Wenn der Text zu einem Sprachelement nicht übersetzt wurde, wird er auf Englisch angezeigt. Zum Beispiel wurden die Informationen zur ga.controls.HelpBox-Klasse nicht in andere Sprachen übersetzt. In der deutschen Version des Referenzhandbuchs erscheint der Abschnitt zur ga.controls.HelpBox-Klasse deshalb auf Englisch.