Here's the patch to MeshHelper to automatically duplicate the verts
for each index, which ends up causing the shader to shade flat.
@@ -283,7 +284,7 @@
* @param name [optional] String. new
name for the gnerated mesh.
Default = "";
* @param material [optional]
MaterialBase. new name for the
duplicated mesh. Default = null;
*/
- public static function build(vertices:Vector.<Number>,
indices:Vector.<uint>, uvs:Vector.<Number>, name:String = "",
material:MaterialBase = null):Mesh
+ public static function build(vertices:Vector.<Number>,
indices:Vector.<uint>, uvs:Vector.<Number>, name:String = "",
material:MaterialBase = null, duplicateVertices:Boolean = false):Mesh
{
var sub_geom:SubGeometry;
var geometry:Geometry = new Geometry();
@@ -291,8 +292,33 @@
if(name != "")
m.name = name;
+
+ if (duplicateVertices) {
+ //create a vertex for each index
+ var indices_dup : Vector.<uint> = new
Vector.<uint>();
+ var vertices_dup : Vector.<Number> = new
Vector.<Number>();
+ var uvs_dup : Vector.<Number> = new
Vector.<Number>();
+
+ for each (var meshIndex : uint in indices) {
+ indices_dup.push(indices_dup.length);
+ var mi : uint = meshIndex * 3;
+ vertices_dup.push(
+ vertices[mi],
+ vertices[mi + 1],
+ vertices[mi + 2]
+ );
+ var ui : uint = meshIndex * 2;
+ uvs_dup.push(
+ uvs[ui],
+ uvs[ui + 1]
+ );
+ }
+ vertices = vertices_dup;
+ indices = indices_dup;
+ uvs = uvs_dup;
+ }
--
Justin Patrin
Developer Extraordinaire
On Thu, Mar 31, 2011 at 2:14 PM, Li <[email protected]> wrote:
> Thanks,that would be great. Happy it worked out for you
>