Planning v3.2-alpha0

34 views
Skip to first unread message

Ricardo Quesada

unread,
Jun 16, 2014, 10:34:47 PM6/16/14
to cocos2d-...@googlegroups.com, cocos3d...@googlegroups.com
Hey,

Today is supposed to be the v3.2-alpha0 release date.

Tony, are we ready to release ? If not, what's missing ? And when can we have it ready ?
Minggo, what do you need in order to create a new release ?

Thanks.

Xiao Yang

unread,
Jun 16, 2014, 11:22:04 PM6/16/14
to Ricardo Quesada, cocos2d-...@googlegroups.com, cocos3d...@googlegroups.com
Yes, we are ready.

The converter is on Trace's repo. based on libgdx converter



--
You received this message because you are subscribed to the Google Groups "cocos3d-x-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email to cocos3d-x-dev...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Xiaoming Zhang

unread,
Jun 16, 2014, 11:24:32 PM6/16/14
to Ricardo Quesada, cocos2d-...@googlegroups.com, cocos3d...@googlegroups.com
I need:
* pull request for new feature including testing cases
* release note for new version


Best Regards
Minggo




Xiaoming Zhang

unread,
Jun 17, 2014, 1:57:10 AM6/17/14
to Xiao Yang, Ricardo Quesada, cocos2d-...@googlegroups.com, cocos3d...@googlegroups.com
Is there a document to describe how to use the tool?
And is there a binary version for developers to use?

Best Regards
Minggo



Ricardo Quesada

unread,
Jun 17, 2014, 3:35:56 AM6/17/14
to Xiaoming Zhang, Xiao Yang, cocos2d-...@googlegroups.com, cocos3d...@googlegroups.com
Thanks Tony, and Minggo.

Tony, since Minggo is going to release the version, please, make sure to answer all Minggo's questions.
If it is easier for you guys, continue this discussion in Chinese via email (or skype, or phone call).

The only thing that I need to know, is when v3.2-alpha0 is going to be available for download.
Thanks!

Xiao Yang

unread,
Jun 17, 2014, 3:41:46 AM6/17/14
to Ricardo Quesada, Xiaoming Zhang, cocos2d-...@googlegroups.com, cocos3d...@googlegroups.com
OK. To make sure it run Harrison and I had done more test on it.

https://github.com/cocos2d/cocos2d-x/pull/7085

The testcase in the Sprite3DTest

We have tested Windows, Mac/IOS, linux and android. Haven't tested other platform, can anyone help do this?

Features:

Support 3D Animation (Skeletal animation) for Sprite3D

Animate3D is a type of Action and have the same usage of other actions.

Sprite3D and Animation load from .c3t (text file) converted from fbx by fbx-conv

fbx-conv is available from Trace's repo. 

https://github.com/Trace0429/fbx-conv


Where should we place the binary version of converter.

Xiaoming Zhang

unread,
Jun 17, 2014, 6:52:21 AM6/17/14
to Ricardo Quesada, Xiao Yang, cocos2d-...@googlegroups.com, cocos3d...@googlegroups.com
I think we can release it tonight or tomorrow morning.

Best Regards
Minggo



Xiao Yang

unread,
Jun 17, 2014, 8:06:10 AM6/17/14
to Xiaoming Zhang, Ricardo Quesada, cocos2d-...@googlegroups.com, cocos3d...@googlegroups.com
Release Note for animation 3D

## Animation3D

Animation3D is skeletal animation in 3D Game. It allows the artist animate a 3D model using bone in 3D modeling tools. Then export the model file and use it in the game.

Work flow

1. Artist produce 3D models in modeling tools and then export it to FBX file.
2. Use fbx-conv convert FBX file to c3t file.
3. Load c3t file in the game.

API of using Animation3D
//load Sprite3D
auto sprite = Sprite3D::create("girl.c3t");
addChild(sprite);
sprite->setPosition(Vec2( 0, 0));

//load animation and play it
auto animation = Animation3D::getOrCreate("girl.c3t");
if (animation)
{
   auto animate = Animate3D::create(animation);
   sprite->runAction(RepeatForever::create(animate));       

huabing.xu

unread,
Jun 18, 2014, 4:43:58 AM6/18/14
to Xiao Yang, Nite Luo, Xiaoming Zhang, Ricardo Quesada, cocos2d-...@googlegroups.com, cocos3d...@googlegroups.com

Hi, I did some performance test for our sprite3D. The result is not very good.

Our result compared to Unity


Model:

girl: 2177 triangles, 46 bones


Iphone 4

girls are placed on the scene

unity




ours


Iphone 4s
16 girls are placed on the scene
unity
ours


It seems that we have big bottlenecks on GPU. We need work to fix this.

Best Regards
Harrison Xu

 Original Message 
Sender: Nite Luo<ni...@us.chukong-inc.com>
Recipient: Xiao Yang<yang...@cocos2d-x.org>
Date: Wednesday, Jun 18, 2014 01:31
Subject: Re: [cocos2d-js-devel] Planning v3.2-alpha0

Thanks Tony,

I’m a bit confused about the Animate3D, is it just an action? Can we remove it to Animation3DAction or something developer can easily tell what it is?

I realized that right now we need about 4 lines of code minimal to play an animation, this is not simple enough. Next version please put more thoughts to it, how to make it easier to use.

Also we need the consistency of API, like

Sprite3D::create()
Animation3D::getOrCreate() //Why this one is different?
Animate::create()


--
You received this message because you are subscribed to the Google Groups "cocos3d-x-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email to cocos3d-x-dev...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.



--

Software Engineer, USA

CocoaChina  | Chukong | PunchBox

Cell: 1-213-880-9568

Skype: darkdukey

QQ: 56931234

www.chukong-inc.com

Screen Shot 2014-06-18 at 4.08.23 PM.png
Screen Shot 2014-06-18 at 4.16.18 PM.png
4s2.png
4s.png
4s.png
4s2.png

Xiao Yang

unread,
Jun 18, 2014, 5:06:40 AM6/18/14
to Nite Luo, Xiaoming Zhang, Ricardo Quesada, cocos2d-...@googlegroups.com, cocos3d...@googlegroups.com
Cocos2d-x has the Animation and Animate.

The Animation3D and Animate3D are similar to that. Animation3D contain the animation data, it is static and can be shared. Animate3D is an action that play Animation3D, it has a reference to Animation3D and some play state of its own.

About the API, 
Animation3D::getOrCreate() //Why this one is different?
Maybe you are right I think.

What I want to do is similar to GLProgramState. Riq said that the GLProgramState::create is confusing because create means create a new one, but this function will not create if already has one. So we use another function getOrCreateWithGLProgram.
I want to let the user know that the Animation3D is shared. So I use this name. If We never change Animation3D manually, we can change it to Animation3D::create and just return the shared animation. But it may be useful when we allow the user to change the Animation3D data manually. When the user call this function he knows that it is shared, and may change by others.

I think it is less probable to change Animation3D in game. So I think we should deprecated the getOrCreate and use create instead. I am sorry to do that.

What is your opinion?

Xiao Yang

unread,
Jun 18, 2014, 5:41:23 AM6/18/14
to Nite Luo, Xiaoming Zhang, Ricardo Quesada, cocos2d-...@googlegroups.com, cocos3d...@googlegroups.com
@Harrison 

Thanks.

We will deal this.

Dawid Drozd

unread,
Jun 18, 2014, 7:53:02 AM6/18/14
to Xiao Yang, Nite Luo, Xiaoming Zhang, Ricardo Quesada, cocos2d-...@googlegroups.com, cocos3d...@googlegroups.com
Sorry what tool do you use?


--
You received this message because you are subscribed to the Google Groups "cocos2d JS development" group.
To unsubscribe from this group and stop receiving emails from it, send an email to cocos2d-js-dev...@googlegroups.com.
To post to this group, send email to cocos2d-...@googlegroups.com.

For more options, visit https://groups.google.com/d/optout.



--
Pozdrawiam
Dawid Drozd.

Ricardo Quesada

unread,
Jun 18, 2014, 5:13:03 PM6/18/14
to Dawid Drozd, Xiao Yang, Nite Luo, Xiaoming Zhang, cocos2d-...@googlegroups.com, cocos3d...@googlegroups.com
Thanks! Well done.
Yes, we need to profile the animation code / render code, and optimize it.

The goal of v3.2-alpha0 was to test the high level API: Sprite3D + animation.
In alpha1 and the betas we need to improve its performance.

Thanks.

huabing.xu

unread,
Jun 18, 2014, 9:12:26 PM6/18/14
to Xiao Yang, Dawid Drozd, Nite Luo, Xiaoming Zhang, Ricardo Quesada, cocos2d-...@googlegroups.com, cocos3d...@googlegroups.com

The only tool that I used is Xcode. When running the code, we can see the FPS, the CPU and GPU time per frame.


Best Regards
Harrison Xu

 Original Message 
Subject: Re: [cocos2d-js-devel] Planning v3.2-alpha0

Ricardo Quesada

unread,
Jun 18, 2014, 9:21:09 PM6/18/14
to huabing.xu, Xiao Yang, Dawid Drozd, Nite Luo, Xiaoming Zhang, cocos2d-...@googlegroups.com, cocos3d...@googlegroups.com
FPS gives us how fast we are, but per frame, but we don't know where to improve the performance.
The good news is that Xcode has a great CPU profiler and and the GPU analyzer (OpenGL ES frame grabber) could help us to detect the bottleneck and improve it.

Xiaoming Zhang

unread,
Jun 18, 2014, 10:12:46 PM6/18/14
to Ricardo Quesada, huabing.xu, Xiao Yang, Dawid Drozd, Nite Luo, cocos2d-...@googlegroups.com, cocos3d...@googlegroups.com
And we missed a function that, how to get the coordinate in screen of a 3d model.
Many developers asked the question.

Best Regards
Minggo



huabing.xu

unread,
Jun 18, 2014, 10:15:27 PM6/18/14
to Ricardo Quesada, Xiao Yang, Dawid Drozd, Nite Luo, Xiaoming Zhang, cocos2d-...@googlegroups.com, cocos3d...@googlegroups.com

New feedbacks:

I profiled the rendering of Unity3d, they do not using vertex shader to skin computation.

And I use no skined vertex shader for our sprite3D computation. The performance is similar with unity3d.
However I do not know the performance of moving skin computation to CPU.

Best Regards
Harrison Xu

 Original Message 

Ricardo Quesada

unread,
Jun 18, 2014, 10:37:10 PM6/18/14
to huabing.xu, Xiao Yang, Dawid Drozd, Nite Luo, Xiaoming Zhang, cocos2d-...@googlegroups.com, cocos3d...@googlegroups.com
For CPU, you can use Xcode's Intruments. It is a great profiling tool.

Xiao Yang

unread,
Jun 18, 2014, 11:19:19 PM6/18/14
to Ricardo Quesada, huabing.xu, Dawid Drozd, Nite Luo, Xiaoming Zhang, cocos2d-...@googlegroups.com, cocos3d...@googlegroups.com
Unity has the method that sample an animation to a few poses (this will use the cpu to compute skin), then render the pose as static model.  But I think for Harrison's test they do not use this method.

And Unity also can merge the draw call automatically. You can determine whether it is using this strategy.
  
I am working on some detail of Sprite3D animation. We will focus on the performance next week. 

Ricardo Quesada

unread,
Jun 18, 2014, 11:40:09 PM6/18/14
to Xiao Yang, huabing.xu, Dawid Drozd, Nite Luo, Xiaoming Zhang, cocos2d-...@googlegroups.com, cocos3d...@googlegroups.com
ok. sounds good.

Li, Zeyang

unread,
Jun 19, 2014, 12:12:46 AM6/19/14
to Ricardo Quesada, Xiao Yang, huabing.xu, Dawid Drozd, Nite Luo, Xiaoming Zhang, cocos2d-...@googlegroups.com, cocos3d...@googlegroups.com
Just curious what was the profiling tool used to generate performance charts?
Reply all
Reply to author
Forward
0 new messages