Current status of Page Curl - ipad

There have been alot of questions regarding page curl animations on ipad and lately more and more applications have been including this.
I have seen links to two projects on github which implement this animation (here and here) but none of these (e.g. kindle) seem to be near to the ibooks (except for the 'Target' app) - yet better than the ones on github.
Are there any newer solutions out there?

I created a Page Curl like filter using OpenGL and CoreGraphics. Speaking about math, shadow casting, shader etc. was a nightmare :-) but it's realistic and it's very close to the iBooks one.
http://api.mutado.com/mobile/paperstack/
I'm working on an easy-to-use API to integrate the GLView and other classes in a common project (like a PDF viewer).
To resume, the logic behind is based on a conical page deformation but to be realistic like iBooks, the math is quite different from the Nuon conical deformation. The filter is done, I hope to complete the API it in a couple of weeks then I'll publish it on github.

Related

Embed Unreal Engine 4 project into another app

I've been trying to work on a proof of concept (POC) where I can embed a UE4 project into an existing application (in my case NativeScript) but this could just as easily apply to Kotlin or ReactNative.
In the proof of concept I've been able to run the projects on my iPhone launching from UE4 pretty easily by following the Blueprint and C++ tutorials for the FPS. However the next stage of my POC requires that I embed the FPS into an existing NativeScript application, this application will manage the root menu, chat, and store aspects of the platform in the POC.
The struggle I'm running into is that I cannot find how to interact with the xcode project generated from the blueprint tutorial and the C++ tutorial generates a xcode project that i'm unsure where the actual root is that I need to wrap.
Has anyone seen a project doing this before and if so are there any blogs or guidance that you can point me to? I've been Googling and looking around for a couple weeks and have hit a dead end. I found a feedback post here from April of 2020, that was referring to a post in January 2020 that talked about how Unity has a way to embed into other applications additionally a question from 2014 here. But other than that it's a dead end.
A slightly different approach
Disclaimer: I'm not an UE4 developer. Guilty as charged for seeing an unanswered bounty too big to ignore. So I started thinking and looking - and I've found something that could be bent to your needs. Enters pixelstreaming.
Pixelstreaming is a beta feature that is primarily designed to allow for embedding the game into a browser. This opens a two way communication between a server where the GPU heavy computations happen and a browser where the player can interact with the content - the mouseclick & other events are sent back to the server. Apparently it allows some additional neat stuff, however that is not relevant for the question at hand.
Since you want to embedd the Unreal application into your NativeScript tool(menu of some kind if I understood correctly), you could make your application a from two separate parts:
One part would run the server.
The second part would handle the overlay via the pixelstreaming.
This reduces the issue of embedding the UE4 into an application to the(possibly easier) issue of embedding a browser into your application. (Or if your application is browser based - voila, problem solved.)
If you don't want to handle the remote communication, just have the server-side run on the localhost.(With the nice sideeffect of saving bandwidth.)
Alternatively, if you are feeling adventurous, you could go and write your own WebRTC support on the application side to bypass the need for the browser alltogether. It might not be worth the effort though.
Side note: The first of the links you provided is a feature request which hints at the unfortunate fact that UE4 doesn't support embedding. This is further enforced by the fact that one of the people there says somethig along the lines "Unity can to this, it would be nice if UE4 could as well."
Yet a different approach:
You could embedd and use a virtual display to insert the UE4 part into your controller - you would be basically tricking UE4 into thinking that the desired display device is a canvas inside your application.
This thread suggests a similar approach:
In general, the way to connect two libraries like this would be through a platform dependent window handle, e.g. a HWND under Windows. Check the UE api if you find any way to bind the render target to a HWND. Then you could create a wxWindow in wxWidgets and tell UE to render into that window. That would be a first step.
I'm not sure if anything I've listed will be of much help but hey, at least I tried :-). Good luck with your game.
At the same time, the author suggests to:
Reverse the problem:
Using the UE4 slate framework and online subsystem. You would use the former to create the menus you need directly in the UE4 and then use the latter to link to the logic you want to have outside of the UE4. However that is not what you asked for so I'm listing it only for the completeness sake.

Is there a programmatic way to see what graphics API a game is using?

For games like DOTA 2 which can be run with different graphics API's such as DX9, DX11, Vulkan, I have not been able to come up with a viable solution to checking which of the API's its currently using. I want to do this to correctly inject a dll in order to display images over the game.
I have looked into manually checking what dll's the games have loaded,
this tool for example: https://learn.microsoft.com/en-us/sysinternals/downloads/listdlls
however, in the case of DOTA, it loads in both d3d9.dll and d3d11.dll libraries if none is specified in launch options on steam. Anyone have any other ideas as to how to determine the correct graphics API used?
In Vulkan, a clean way would be to implement a Vulkan Layer doing the overlay. It is slightly cleaner than outright injecting dlls. And it could work on multiple platforms.
In DirectX, screencap software typically does this. Some software adds FPS counter and such overlays. There seems to be open source with similar goals e.g. here: https://github.com/GPUOpen-Tools/OCAT. I believe conventionally the method is to intercept (i.e. "hook" in win32 api terminology) all the appropriate API calls.
As for simple detection, if it calls D3D12CreateDevice then it likely is Direct3D 12. But then again the app could create devices for all the APIs too and proceed not to use them. But I think the API detection is not particularly important for you if you only want to make an overlay; as long as you just intercept all the present calls and draw your stuff on top of it.

Mobile friendly ways to do a "Candle flame" animation

I haven't tried posting here before so I hope that I am doing it right.
Some years ago I bought this candle flame Flash based animation:
http://activeden.net/item/candle-flame-animation-v3/discussion/42205
Anyways, that is done in Flash using Action Script and so I am looking for an alternative that looks just as good but works on mobile devices.
I have tried creating small looped movie segments of the animation, gif's and a seris of jpgs using a sprite.
But none of the above really works that well and so I am looking for an alternative.
Could something like this be done in html, css3, javascript? And is there a library/framework out there that could help me build it?
I tried to convert the file via Google Swiffy once, and the end result actually looked surprisingly close to the original, but in terms of performance I was able to crash the browser on my phone everytime I tried seeing the animation.
Can Google Swiffy's code be optimized easily?
Thanks.
Have you tried using a particle system? There are some javascript libraries out there, for instance:
https://github.com/gamealchemist/JSparkle
The demos don't include a 'candle' effect but it shouldn't be that hard to achieve.

What Actionscript features do not work on iOS?

There seems to be a lot of conflicting information out there. It might be that support has increased recently, or changes to adobe.com/air have made some information difficult to find - but I can't track down a definitive list of things to avoid.
I know that actionscript won't run in loaded SWFs, I know that some people say that filters and blendmodes and halo components won't work. I've also read many posts saying they will (at least that blendmodes will, and that halo will run, but slowly so still use spark)
I have a large amount of AS3 code to plan for upgrading to work on iOS, but at the moment I have no idea what things will break (or what things will break when those things have been fixed!)
Is there a list of unsupported APIs, or iOS dos and don'ts?
Thanks
:S
First, yes. Externally loaded SWF's will not run. You can however embed SWF's/SWC's into your project and include them inside of your package.
As far as Flex components, stay away from Halo. You should use Flex 4.6 and stick to components with mobile skins. I recommend downloading Tour de Flex http://www.adobe.com/devnet/flex/tourdeflex.html to get an idea of whats available.
As far as blend modes go, I'm not really sure. I haven't used them in mobile yet. However filters are supported but they are expensive. For drop shadows on rectangles there is something called RectangularDropShadow. This is actually a component and therefor less expensive. However it can only be used on rectangular groups.
You should have access all of the AIR API's. You will however be restricted when using some of File related classes since I don't believe you can leave your Appliaction Storage Directory.
One big performance tip I can give is to use AS3 over MXML whenever possible, ESPECIALLY when creating item renderers. Use BitmapImage over Image whenever possible, again especially in item renderers. Use cacheAsBitmap whenever you have images that don't change often. And stay away from any Flex component that doesn't have a mobile skin.
You may also want to read up on View and destruction policies.
http://www.adobe.com/devnet/flex/articles/flex-mobile-development-tips-tricks-pt1.html
This link also has some more performance tips
http://www.adobe.com/devnet/flex/articles/flex-mobile-performance-checklist.html

What web application framework should I use for a web gallery?

I need to create a photo gallery for a website running IIS 4.0 or IIS 5.0 (im not sure which). It needs to display a low resolution version of the gallery to anyone, and it must show both the low and high resolution images for "priviledged" users. So I need access priviledges, photo albums and once the site is complete, the person I am doing this for needs to be able to upload their own images to the gallery. It also needs to have a minimal interface as it needs to be integrated into an existing website.
So I need some advice on this with the direction I should approach it.
Does anyone know if their is a customisable gallery out there that can do something like this, such as Coppermine or Jgallery or something. The alternative is to use a web framework like Ruby on Rails, CodeIgniter or Sproutcore (each which require learning a new language). The framework would be more work, but the existing galleries may not be customisable enough. The important bit is the user privileges in an admin panel.
I am relatively new to "web programming", although not new to normal/games programming. I have a few years experience with C/C++ OpenGL and Java. I have also read up on MVC etc, and did hello world with sproutcore, so I kinda get the idea. Although learning a framework is a much heavier investment.
What are your thoughts?
If you don't want to re-invent the wheel you could use Gallery2 (requirements here). It runs on IIS -- you'd just need PHP and a database. It's very configurable (including user accounts), has lots of plugins, and its open source if that's not enough. Also, the development and support communities are large and active.
you could always go the route of Dotnetnuke and then use Ventrian's Simple Gallery module (http://www.ventrian.com/Products/Modules/SimpleGallery/Demo.aspx)
Using DNN offers a ton of functionality, including the security you need, and it would save you from doing any web development.
If you are a bit more adventurous, try Smaltalk based Aida/Web and specially Aida/Scribo CMS (currently still in beta), which include Gallery so called scriblet as well. Scribo scriblets are otherwise web components which you can include directly into a text. You therefore add a gallery directly into a surronding text. See for instance a presentation as a Gallery for example.
I would recommend my own but... If it weren't for the low/high resolution thing with permissions I think it would fit the rest of your needs. I'm going to leave a link just in case you want to take a look at it:
nzFotolog
It's also open-source (although the license is not the best) and you can change it at will if you want. The code itself is clean and self-explanatory. The downside is that I haven't developed it for some time now :(
Having faced a similar dilemma myself I have to say that I found Gallery2 and Coppermine both far too all-encompassing and difficult to customise to the degree I would have wished. I ended up rolling my own using straight, procedural PHP with various bits of jQuery for the GUI fancy bits. At the same time I was able to bake in some e-commerce and data gathering for my wedding photography clients, ending up with something which exactly matched my needs. Certainly, the gallery aspects of this project were, for a complete programming (although not HTML) neophyte, the least challenging - it's exactly the sort of thing PHP is made for.
I'm now taking my first faltering steps with CodeIgniter for my next project (photoblogging software) and I can already see that the framework would make a gallery project very quick, simple and secure.
Flickr.com and their API may be suitable from what you described.
http://www.flickr.com/services/api/

Resources