I have such a simple problem/issue/question that i can't seem to find quite the answer to without asking. So, I am using Away3D 3.5 (Latest as of this question 5-3-10) and for starters all i am trying to do is create a hexagonal shaped grid using smaller hexagons. The MAIN purpose for this larger hexagon grid is so you can drag other 3D objects to it from a list later on and the grid accepts mouse clicks so you can select the hexagons. ----------------------------------------------------------------------------------------------- I am creating one hexagon shape (Side=6) using the object type "RegularPolygon", Radius=57, and i am using that as a BASE since i want to set a color to it, an “alpha= 0.3, ownCanva=true”, to make it partially transparent so the background show's thru and i need to create this base object so i can have something solid so i can click on using the “MouseEvent3D” event.
Next i create a second hexagon shape (Side=6) using the object type "WireRegularPolygon", Radius=57 to form an outline to the first "BASE" hexagon so you can see the hexagon object AND its main purpose is once you click on the base hexagon, it will change the wire hexagons color to something else, showing that that hexagon was selected. I use a FOR LOOP to generate a larger Hexagon shape using the above two objects, which is made up of a total of 542 RegularPolygon’s and 542 WireRegularPolygon’s but would like twice that much or more later on. The reason I would rather generate the grid dynamically is so I can create different size hexagons or different patterns of them later on. If I used a hexagon image, I would have to recreate it if I changed its size or color. ----------------------------------------------------------------------------------------------- MY PROBLEM is that once I make that grid zoomed out all the way so you can see the entire thing, the "T ELEMENT=3252" and the "R ELEMENT ranges from 3405 to 3795" depending on how the HoweverCamera3D is tilted. The RAM is around 50MB to 60MB which does not seem too bad for now. The FPS at max zoom is around 8 to 10 FPS when you rotate and till the camera. It is also using FP10 and all coding is done in Adobe CS4 Suite. I am also using BASIC RENDERING. All hexagons are generated in a separate AS3 class file which extends ObjectContainer3D and I create an instance of this class in the MAIN AS3 class file. I have nothing else on screen but the large hex grid and a static 500x500 JPG image as the background. ALL I am looking to do is make a very lightweight hexagon grid using ANY 3D Object type that can accept a MouseEvent3D event so I can click on it, be able to have alpha set (BUT I could do away with that and make it be 100% transparent), and have an outline that I can later change its color and thickness to show it was clicked on as this object serves nothing more than a sort of "stage" for other objects. Basically, in my view, that hexagon “stage” is suppose to be the LEAST performance hungry of all other objects to come. ----------------------------------------------------------------------------------------------- In my first attempt before I started using away3D, i just created each Hexagon "BASE" using a Sprite object and generating the "OUTLINE" using a Shape object that you can draw on using the graphics and drawPath functions and had to actually draw the hexagon shape manually using lines and sin/cos. MY next set of questions would be about if there is a "drawPath()" function in away3d just like in Flash to draw on sprites and Shape objects. I did see it, BUT really don't know if it works like the one in Flash. I also did see a Graphics3D.as file that seems to have similar functions such as "moveTo" and etc, but i have not seen any examples on how to use it yet. When i just display the outline hexagon SHAPE objects in Flash, i can create a huge grid, over 1000 objects, and it runs really fast (meaning can rotate it using rotationY as well as panning without loss of FPS). But it is not practical to try to click on a wire frame outline of a hex. Don't know the poly count or RAM usage as that is created using the native Flash Display objects AND I can't add sprite or shape objects into any Away3D objects directly, so can't display them. I have tried and could not figure it out yet BUT if there is a way that might help a lot as i know those Flash objects being displayed are much faster on the FPS. ----------------------------------------------------------------------------------------------- I am by no means an expert at away3D or Flash and I started using Away3D like a month ago and I have to admit it is incredibly awesome 3D package. I have not yet explored using Line2D or Line3D to draw the hexagons manually as well as Sprite3D objects for the BASE mouse event object in away3D but those will be my next things to experiment with, BUT before I just jump head first into recreating the entire thing 5 different ways, I would like to know an easy way to generate a very simple hexagon grid that you can select each smaller hexagons it is made of, without making the POLY COUNT so enormously large. There are many ideas as t how to do it, BUT I would rather try using basic primitive objects available in away3D or something simple with the least amount of code to try to optimize it. Thanks for anyone who can answer my question.
