Skip to main content

Is Java 3D APIs BD-J compatible?

12 replies [Last post]
castana
Offline
Joined: 2007-05-08

Hi all,
I am thinking in using 3D design to make a BD-J project, for it, Does anybody know if JAVA 3D APIs are compatible with BD-J?
Thanks in advance
Regards
Alejandro Castan

Reply viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.
castana
Offline
Joined: 2007-05-08

Dear Mr. Rouven Malecki,
I apologize to you for this but since you told us in this forum that 3D sample made with Kaleidoscope software works fine into PS3, for it, Could you send this one to try?
Thanks for your time
Alejandro Castan

Richard Ross

Just as a point of interest I have seen realtime 3D on the the PS3
using hacked Processing libraries. You could have an okay small-ish
spinning cube but not much more (that I saw).

If Eddie Elliot is on this list maybe he could comment further.

However this did need the horsepower of the PS3 to run.

Richard.

On Sep 12, 2009, at 11:27 AM, bd-j-dev@mobileandembedded.org wrote:

> Hi, Alejandro,
>
> The 3D library I saw was mostly a science project and definitely not
> suitable for creating a Playstation Home style environment.
> Unfortunately, while there were some who were in favor of requiring
> 3D graphics acceleration as part of the Blu-ray Disc specification,
> this was ultimately not approved (and even 2D graphics performance
> requirements are fairly minimal). As a result it's difficult to
> produce graphics-intensive applications which will run across all BD
> players.
> [Message sent by forum member 'billshepp' (bill.sheppard@sun.com)]
>
> http://forums.java.net/jive/thread.jspa?messageID=363771
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: bd-j-dev-unsubscribe@hdcookbook.dev.java.net
> For additional commands, e-mail: bd-j-dev-help@hdcookbook.dev.java.net
>

---------------------------------------------------------------------
To unsubscribe, e-mail: bd-j-dev-unsubscribe@hdcookbook.dev.java.net
For additional commands, e-mail: bd-j-dev-help@hdcookbook.dev.java.net

Eddie Elliott

I experimented with porting a few Processing sketches to BD-J a couple years
ago. I managed to get an adaptation of the RGB Cube sketch working, but it
covered only about an eighth of the HD screen area.

http://processing.org/learning/3d/rgbcube.html

As Richard mentioned, the spinning cube animated best on the PS3. After the
brief forray into 3D, I tried some simple 2D spring physics. That also
performed best on the PS3, with modest rendering covering most of the screen
at pretty a good frame rate. I'm not sure whether to attribute the fairly
decent performance to the PS3's CPU or if the PS3 backs BD-J with a floating
point unit. In any case, the spring-physics 2D floating point math suffered
on other players. The best hope is probably fixed-point math, but I haven't
had a chance to explore that yet.

Has anybody here tinkered with fixed-point math in BD-J? Any good libraries
to recommend?

Eddie

----- Original Message -----
From: "Richard Ross"
To:
Sent: Saturday, September 12, 2009 11:39 AM
Subject: Re: [BD-J-DEV] Re: Is Java 3D APIs BD-J compatible?

> Just as a point of interest I have seen realtime 3D on the the PS3 using
> hacked Processing libraries. You could have an okay small-ish spinning
> cube but not much more (that I saw).
>
> If Eddie Elliot is on this list maybe he could comment further.
>
> However this did need the horsepower of the PS3 to run.
>
> Richard.
>
> On Sep 12, 2009, at 11:27 AM, bd-j-dev@mobileandembedded.org wrote:
>
>> Hi, Alejandro,
>>
>> The 3D library I saw was mostly a science project and definitely not
>> suitable for creating a Playstation Home style environment.
>> Unfortunately, while there were some who were in favor of requiring 3D
>> graphics acceleration as part of the Blu-ray Disc specification, this
>> was ultimately not approved (and even 2D graphics performance
>> requirements are fairly minimal). As a result it's difficult to produce
>> graphics-intensive applications which will run across all BD players.
>> [Message sent by forum member 'billshepp' (bill.sheppard@sun.com)]
>>
>> http://forums.java.net/jive/thread.jspa?messageID=363771
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: bd-j-dev-unsubscribe@hdcookbook.dev.java.net
>> For additional commands, e-mail: bd-j-dev-help@hdcookbook.dev.java.net
>>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: bd-j-dev-unsubscribe@hdcookbook.dev.java.net
> For additional commands, e-mail: bd-j-dev-help@hdcookbook.dev.java.net
>

---------------------------------------------------------------------
To unsubscribe, e-mail: bd-j-dev-unsubscribe@hdcookbook.dev.java.net
For additional commands, e-mail: bd-j-dev-help@hdcookbook.dev.java.net

billf
Offline
Joined: 2004-02-13

Eddie wrote:
> Has anybody here tinkered with fixed-point math in
> BD-J? Any good libraries
> to recommend?

I never went so far as to seek out libraries, but some of the HD cookbook code uses fixed-point math. For example, the animation framework uses a rather novel unit of measure for the framerate: Frames per 1001th of a second. That way, the integer constant 24000 gives you 23.976 fps, and if you really want 24 fps, you can get it with the integer constant 24024. The video geek in me thinks it's cool that a technological legacy from half a century ago still survives in this form.

A little more extensive fixed-point math us used for the Al-Zaidi shoe-throwing game in xlets/demos/big_shoe/08. I did a lame-but-adequate numeric approximation of the spring differential equations -- it makes the shoe spring back and forth when you move it with the arrows. Check out EdSullivan (the director of the big_shoe), which has this:

public void heartbeat() {
handleX += handleDX;
if (handleX < 100) {
handleX = 100;
} else if (handleX > 1820) {
handleX = 1820;
}
shoeDX += ((handleX - shoeX) * SPRING_K + 500) / 1000;
shoeDX += ((handleDX - shoeDX) * DRAG + 500) / 1000;
shoeX = shoeX + shoeDX;
shoeMover.setField(Translator.X_FIELD, shoeX);
shoeMover.setField(Translator.Y_FIELD, shoeY);
}

Using integers to represent carefully chosen units (like thousandths) is a bit of a lost art, but it's not all that hard once you get the hang of it. With that, and some pre-calculated lookup tables (for functions like ln() and atan and stuff) and some binary searches maybe, one could go far.

Cheers,

Bill

rouvenm
Offline
Joined: 2007-03-09

Bill,
the PS3's raw CPU performance in BD-J is astounding. The biggest limitation for a 3D engine is heap memory (9MB) for the frame buffer and textures, so you have to go for QHD resolution or not cover the entire screen. But apart from that, our engine renders *hundreds* of lit, shaded and texture-mapped triangles at a very decent frame rate.
I can send you a disc image if you're interested :-)
-Rouven

billshepp
Offline
Joined: 2004-05-20

Alejandro, Rouven's 3D engine is the one I referred to in my original post. Feel free to take him up on his offer if you're interested.

Bill (the one still at Sun who didn't create HD Cookbook)

billf
Offline
Joined: 2004-02-13

(Repost from mailing list; the mailing list -> web site bridge seems to be down).

I think Bill is being charitable here. I haven’t done measurements or anything, but performance of a 3D emulation library would likely make the experience totally unusable on normal players, and probably no better than marginal on the PS/3. When you think a bit about what you’d have to do to implement even something simple, like a shaded cube rotating in space, it becomes pretty clear that most of the work would happen in the CPU, and not the GPU; I’d be surprised if such an emulation on even the PS/3 were satisfactory.

So, I guess we won’t be seeing a BD-J implementation of Cube any time soon – the polyverse will just have to defend itself for a while.

Cube! ( http://www.youtube.com/watch?v=4aGDCE6Nrz0)

castana
Offline
Joined: 2007-05-08

Hi Bill,
First, Thanks for your answer.
Sorry for my ignorance in this topic but I would like to say you that my main goal is making 3D game to play into PS3 and since I have played with PS3 home and it is amazing maybe I could make some 3D similar game and make the BD-J code and export it to Scenarist BD software and generate a Blu-Ray project.
Now my big problem is creating 3D game and generate its movements through BD-J programing and that it can be export to Scenarist, for it, Could you say me if Cube 3D software is compatible with BD-J?
Thanks for your help
Best Regards
Alejandro

billshepp
Offline
Joined: 2004-05-20

Hi, Alejandro,

The 3D library I saw was mostly a science project and definitely not suitable for creating a Playstation Home style environment. Unfortunately, while there were some who were in favor of requiring 3D graphics acceleration as part of the Blu-ray Disc specification, this was ultimately not approved (and even 2D graphics performance requirements are fairly minimal). As a result it's difficult to produce graphics-intensive applications which will run across all BD players.

castana
Offline
Joined: 2007-05-08

Hi Bill,
First, Thanks for your help.
Sorry for my ignorance but as are an very important Java expert maybe you could advice me since I am a little confused myself.
I know a game software named BD-Fusion by Sonic Solutions to create Java applications for Blu-Ray players (jar files). These applications can be BR menus, information pages, games, puzzles, etc. Then these Jar files are created as BDJO files to export Scenarist BD like a BD-J title.
I also know that BD-Fusion can create 2D games and can simulate a 3D depth relationship between objects in games and applications, said this, my question was the following. Do you think that a 3D game create with BD-Fusion can work into BD-J environment ?
Thanks for your time.
Best Regards
Alejandro

billshepp
Offline
Joined: 2004-05-20

> Does anybody know if JAVA 3D APIs are compatible with BD-J?

Sorry, BD-J does not include Java 3D API's. I've heard of at least one company which implemented a portable version of OpenGL on top of BD-J, but performance would be challenging on all but the fastest players.

Bill

castana
Offline
Joined: 2007-05-08

Hi Bill,
First, thanks for your help.
According to your answer I would like to ask if you know what is the name software you mention? Would it be possible? I know BD Fusion by Sonic Solutions. It works for BD-J projects. Is it the software you tell me?
Best Regards
Alejandro
Pd: Sorry for my little english