Jump to content


 

Photo

Minidash


  • Please log in to reply
20 replies to this topic

#16 openxdkman

openxdkman

    X-S Genius

  • Members
  • PipPipPipPip
  • 827 posts
  • Gender:Male
  • Xbox Version:unk
  • 360 version:unknown

Posted 13 May 2010 - 03:22 PM

The fact that more and more opengl es 2.0 compliant devices are spawning is very interesting...
(1.1 had fixed-function pipeline. Note that guys at www.opengles-book.com have done a very smart thing : they created, for their iPhone samples, a 2.0 shader that implements the entire 1.1 fixed-function pipeline! So, someone like me, more interested in starting studying opengl es through v2.0 will just have to consider v1.1 as a subset of v2.0 and keep that shader in mind. Very smart!)

To make it clear Minidash is an http/ftp client that allows to access and interpret files that are both at the same time source and binary code written in CAS language (Canonic assembler). But that's only half of it. Other half is some unified API. About graphics, adopting open gl es 2.0 API functions will have many advantages. They seem to be simple enough for fast coding, but graphic result is great even on small devices! Shaders is the little something that makes graphics really shine and make you think it's running really on a 'next gen' hardware (even if lacking some horsepower compared to 360 or ps3). It allows transparencies, reflections, polish-effect, metallic-effect, etc... Quite something! (compared to older cards or even the current wii! -current wii has only a fixed-function pipeline-)

So I will try this roadmap (for addition of open gl es 2.0 compatible api functions) :

1) minidash for iphone 3Gs/ipod 3G/ipad (because of my job, i'm over-equipped with apple stuff)
2) minidash for zune hd (may be urgent because next firmware may crush the potential of current openzdk)
3) minidash for windows -and maybe snow leopard too- (using directly open gl es 2.0 emulators libraries)
4) minidash for pc0+7300GT (eh... because that was the original goal of this whole forum!)
5) the rest of the platforms written in the minidash changelog

I've tried 8500GT and 9600GT models and I got disappointed. The 9600GT requires too much extra power plugs (I gave up since I didn't want to redo again my whole pc), and the 8500's fan did horrible noises at boot time whereas card was brand new! -I guess my MB doesn't supply enough current at boot time for its motor- (I kept it a while in order to finish Mass Effect 2 on pc, but I put back my beloved fanless 7300GT asap). I'm really too much fond of silence and my 2Ghz cpu is enough for me. Just investing in thermal paste and a big silent cpu fan was all I needed. My Gigabyte 7300GT is good enough for open gl es 2.0 -I guess- and having a big metallic mass instead of a fan makes it perfectly silent. I won't start a race tu run after every graphic card model that will go out, that would be insane.

So there is a decision to make and I think the first main graphic level of unified api will be a subset of open gl es 2.0. There will be probably some lower level (for pc0 without good graphic card) and higher level (for ps3's and 360's), but I will start with this intermediate level that will reduce enormously coding time on platforms already compatible at hardware level with it. For overpowerful graphics in high res it's wiser now to rely on 360's and ps3's... They have become so cheap... Also I would like to invite (through specific tutorials and automatic graphics generators api) homebrewers to focus on story, text, etc... instead of technical performance, in order to have more adventure games that take long time to finish than mere technical demos...

For inputs I will imagine a way to draw an half circle with 1 finger at bottom of vertical touch screen or rotate 1 joypad's thumb in the upper half or move mouse along that half circle on screen, for camera rotations management, and just a straight vertical touch from bottom to top for triggering an action, in order to use a common way to control homebrew on all platforms. I find more enjoyable to use a device the vertical way with just one hand to hold it and one thumb to interact with it.

Edited by openxdkman, 02 August 2010 - 10:36 AM.


#17 openxdkman

openxdkman

    X-S Genius

  • Members
  • PipPipPipPip
  • 827 posts
  • Gender:Male
  • Xbox Version:unk
  • 360 version:unknown

Posted 27 July 2010 - 08:07 PM

Finally got some holidays...

My first attempts to play with OpenGL ES 1.1 and 2.0 on iPhone/iPod and 2.0 on Zune HD are very encouraging. The enlighted Dragon demo from zuneboards is perfect for my study purpose...
On iPhone side, I could find on internet a way to remove the xib from project created from OpenGL ES application template and this template is nice since it detects if device supports or not 2.0 and executes different code for each case. I will try, this week, to publish some port of Initial Fantasy demo for Zune HD and iPod/iPhone/iPad (3D rendering loop, able to read .3ds file, that displays a starfighter or a biplane) like I did for xb1, ps2 and 360.

By using the 2.0 shaders simulating the 1.1 fixed function pipeline I should be able to create a strong identical 3D graphics behaviour of some unified API among these platforms : iPhone (all models), iPod (all models), iPad, Zune HD, Xbox 1, Windows, Mac, PC0, 360, PS3(fw<2.10) and maybe PS2 and Wii too. (The study of Windows Open GL ES 2.0 emulator will surely help for PC0)

(Good thing with Mac is that iPhone SDK is free and includes iPad/iPhone simulator that doesn't, in fact, emulate accelerated graphics : it really displays hardware accelerated graphics! It probably works like the OpenGL ES Windows emulators, it just translates calls -I've tested with iPhone SDK 4.0.1 on iMac-. In other words, it's not even necessary to create a specific Mac binary... iPad simulator fills easily whole screen. Also if you force code to believe 2.0 is not supported, it emulates perfectly 1.1 too!)

I will try to see how many vertice/frame at 60Hz each platform can do.
(With 1 light, so far, we know score is 330K for xb1, 250K for ps2 and 3M for 360. Small devices should do less than that, but who knows... Maybe there is some surprise to discover...)

Edited by openxdkman, 02 August 2010 - 10:00 AM.


#18 openxdkman

openxdkman

    X-S Genius

  • Members
  • PipPipPipPip
  • 827 posts
  • Gender:Male
  • Xbox Version:unk
  • 360 version:unknown

Posted 01 August 2010 - 10:52 AM

My holidays are finished. Here are the scores :

Max number of vertices/frame at 60hz (no lighting) :
(i.e if you decide your scene is to be rendered at 30hz, this is half the max number of vertices you can draw in your scene, but remember that 3 vertices in a triangle list draws a triangle whereas 1 vertex in a strip list draws a triangle, so it all depends how you organize your mesh, to gain an additional triple factor)

1) 100K for powerful apple devices : iPhone 3GS, iPod 3G (64Gb), iPad
2) 20K for zune HD
3) 12K for weak apple devices : iPhone 3G, iPod 2G (8Gb, some 32Gb)

(woah! ultra-light iPod 3G is like half a ps2 or one third of xbox1!)

Sources (read main.* file for instructions about how to deploy/compile) :

http://minilgos.com/zun/zun.zip (zune hd)
http://minilgos.com/ios/ios.zip (all apple device models)

(forgot to write that additional needed frameworks are QuartzCore and OpenGLES but they should come from the template. forgot to write that the shaders files have to be moved from targets/(app)/compile... to targets/(app)/copy... so Xcode doesn't try to compile them. They are read at runtime)

(textured biplane with 90K vertices, with per-pixel lighting on zune)

(turn zune left or right to change light orientation, like in enlighted dragon)

I withdraw what I said about iPhone/iPad simulator, there is too much speed loss (tops around 85K in iPad simulator), so a specific Mac OS version is required to get top speed on Mac OS.


Edited by openxdkman, 20 May 2015 - 09:32 PM.


#19 openxdkman

openxdkman

    X-S Genius

  • Members
  • PipPipPipPip
  • 827 posts
  • Gender:Male
  • Xbox Version:unk
  • 360 version:unknown

Posted 01 July 2011 - 01:56 PM

I might have soon the opportunity to spend time (for work) learning java, especially associated to OpenGL ES 2.0 libraries on platforms BlackBerry Torch and Android 2.2 (Xperia Play). I will try to port the 3D biplane sample to these two platforms, publish source and measure performances. No ETA.

Edited by openxdkman, 01 July 2011 - 01:56 PM.


#20 openxdkman

openxdkman

    X-S Genius

  • Members
  • PipPipPipPip
  • 827 posts
  • Gender:Male
  • Xbox Version:unk
  • 360 version:unknown

Posted 01 June 2012 - 08:24 AM

Because of my job I made a lot of progress in learning how to code for Android platform.

So a 3D sample for android will certainly be released soon. Can't give a precise ETA though.

A sample for BlackBerry Torch has less priority since market seems to divide itself massively between iOS and Android products, but there are so many similarities between Android and BlackBerry os, it can happen too.

When I've finished 3D samples for important os'es (last one is Android for sure). I will redo an update round for minidash.

There is also a project of some little online MMORPG running on pc (maybe pc0 too), ios and android, running in my head, maybe based on minidash. They are clearly the 3 OS'es to focus on, in the immediate future.

Edited by openxdkman, 01 June 2012 - 08:29 AM.


#21 openxdkman

openxdkman

    X-S Genius

  • Members
  • PipPipPipPip
  • 827 posts
  • Gender:Male
  • Xbox Version:unk
  • 360 version:unknown

Posted 25 June 2016 - 03:25 PM

ok... four years later... here is another post about Minidash unified api, and especially for android, iOS and win10mobile platforms...

2016 is an astounding year for people like me trying to prepare something useful in order to obtain many apps for many platforms from a single source (in case of Minidash it's a canonic assembler source, see other thread for explanations about CAS).

 

Microsoft purchased Xamarin and immediately many things have become free, early in 2016...

There are 2 major domains : apps using forms and apps using Open GL. I will focus on Open GL but be aware that now free xamarin forms is a way to target triple OS with just one source and it seems it has become mature just now (May 2016) through community 2015.

 

A few posts above I stated that Open GL ES 2.0 was an interesting base for some 3D functions in some unified API for Minidash (which is just an engine interpreter executing canonic assembler, but without some unified API we won't do much with it. btw I doubt I will use Minidash name to add cas interpreter engine in the various app stores out there, I guess it will be some scripting ability added to a few professional -but free- apps. So you will have to find them yourself inside app stores. For hacked consoles it will be still named Minidash).

 

With recent xamarin and vs community 2015 free updates a few interesting things have appeared about Open GL ES 2.0 :

 

- In order to produce a win10mobile app (universal app indeed) using Open GL ES 2.0, on my PC, I could install free vs community 2015 and create an app using the Visual C++ -> Cross-platform -> Open GL ES 2.0 app (iOS,Android,Universal) template. With a Lumia 550 accepting unsecure apps, plugged into the pc in order to launch and debug on the device, it was fast and nice. For now the iOS and Android parts of project don't seem to compile well atm but see below, with an iMac it works better for them thru Xamarin Studio, but not in C++ (if they fix that later, it will really be one C++ source giving apps for 3 OS'es, quite nice!).

 

- In order to produce an Android app using Open GL ES 2.0, on my iMac, I could install free Xamarin Studio and create an app using the Android -> App -> Open GL ES 2.0 template. With a Samsung Galaxy S6 turned in dev mode (tap many times 'build number' of fw), plugged into the iMac in order to launch and debug on the device, it was fast and nice and C# language is a refreshing new approach.

 
- In order to produce an iOS app using Open GL ES 2.0, well, you can do the same as for Android using Xamarin Studio on iMac in order to get the same C# language new approach, or just use good old X-Code and the sample I supplied to you in 2010 (see link to ios.zip a few post above, written in C language and Objective-C language). 

 

The language used to create the canonic interpreter engine and the unified API's you will be able to call with it, really does'nt matter.

Canonic assembler and unified API will be the common base and above it some people will be welcome to create C, C++, Pascal compilers or whatever...






0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users