Author Topic: Multiple rendering of one Object3D  (Read 1005 times)

Offline ElKornacio

  • byte
  • *
  • Posts: 2
    • View Profile
Multiple rendering of one Object3D
« on: August 12, 2012, 01:30:29 am »
Hi.

Firstly, sorry for my awful english, I'm from Russia =)

I want to make game for Android. And in my game there are a lot of buildings - same models, that placed in different locations.
So. I want to load .3ds one time. I want to create one object3d, that will store mesh from .3ds. But I want to render it multiple times in different places. How can I do it?

I would be very grateful to you for your answer =)

Offline EgonOlsen

  • Administrator
  • quad
  • *****
  • Posts: 11748
    • View Profile
    • http://www.jpct.net
Re: Multiple rendering of one Object3D
« Reply #1 on: August 12, 2012, 08:36:35 pm »
You can't render one object multiple times per frame, but you can create clones of an Object3D and make them use the same mesh. To do this, do

Code: [Select]
Object3D obj2=new Object3D(obj1, true);
obj2.shareCompiledData(obj1);
obj2.shareTextureData(obj1);

The last two lines can be left out, but that will reduce performance and increase memory usage. As long as the clones are 100% clones of the first object, you should use them.

Offline ElKornacio

  • byte
  • *
  • Posts: 2
    • View Profile
Re: Multiple rendering of one Object3D
« Reply #2 on: August 13, 2012, 01:29:05 pm »
Okay, thank you, that's really will help me.

And more one question: I saw your RPG project. That's really great. But I want to ask: how are you texturing terrain?
Trying to be more understandable: for example: I have map, that covered by grass. But in some places it covered by asphalt. Is it really to make one Object3D (mesh) and make it.. multitexturing?)

Asking, because I saw something like I want in your project =)

Offline EgonOlsen

  • Administrator
  • quad
  • *****
  • Posts: 11748
    • View Profile
    • http://www.jpct.net
Re: Multiple rendering of one Object3D
« Reply #3 on: August 13, 2012, 04:02:04 pm »
Yes, basically. The rpg's terrain uses four texture layers. One contains the tiled grass, one the tiled rocks, one the tiled sand and one a streched rgb-image that defines the texture splatting at each location. So at a given point of the terrain, a shader reads the color value at that point from all three textures (plus a darkened version of sand for roads) and mixes them based on the rgb-color of that point in the splatting texture.