⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ambientshader.as

📁 著名的flash 3d引擎 away 3d的源代码
💻 AS
字号:
package away3d.materials.shaders{	import away3d.containers.*;	import away3d.core.*;	import away3d.core.base.*;	import away3d.core.draw.*;	import away3d.core.render.*;		import flash.display.*;		/**	 * Shader class for ambient lighting	 * 	 * @see away3d.lights.AmbientLight3D	 */    public class AmbientShader extends AbstractShader    {		use namespace arcane;                /**        * Defines a 24 bit color value used by the shader        */        public var color:uint;    			/**		 * Creates a new <code>AmbientShader</code> object.		 * 		 * @param	init	[optional]	An initialisation object for specifying default instance properties.		 */        public function AmbientShader(init:Object = null)        {        	super(init);        }        		/**		 * @inheritDoc		 */		public override function updateMaterial(source:Object3D, view:View3D):void        {        	clearLightingShapeDictionary();        }        		/**		 * @inheritDoc		 */        protected override function clearFaceDictionary(source:Object3D, view:View3D):void        {        	for each (_faceVO in _faceDictionary) {        		if (source == _faceVO.source) {	        		if (!_faceVO.cleared)	        			_faceVO.clear();	        		_faceVO.invalidated = true;	        	}        	}        }        		/**		 * @inheritDoc		 */        public override function renderLayer(tri:DrawTriangle, layer:Sprite, level:int):void        {        	super.renderLayer(tri, layer, level);    		        	for each (ambient in tri.source.session.lightarray.ambients)        	{        		if (_lights.numLights > 1) {					_shape = getLightingShape(layer, ambient);		        	_shape.blendMode = blendMode;		        	_graphics = _shape.graphics;		        } else {		        	_graphics = layer.graphics;		        }	        					_source.session.renderTriangleBitmap(ambient.ambientBitmap, _mapping, tri.v0, tri.v1, tri.v2, smooth, false, _graphics);        	}						if (debug)                tri.source.session.renderTriangleLine(0, 0x0000FF, 1, tri.v0, tri.v1, tri.v2);        }        		/**		 * @inheritDoc		 */        protected override function renderShader(face:Face):void        {			for each (ambient in _source.session.lightarray.ambients)	    	{				_faceVO.bitmap.draw(ambient.ambientBitmap, null, null, blendMode);	    	}	    		    	for each (directional in _source.session.lightarray.directionals)	    	{				_faceVO.bitmap.draw(directional.ambientBitmap, null, null, blendMode);	    	}        }    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -