Jump to content

  • Log In with Google      Sign In   
  • Create Account


Member Since 04 Aug 2007
Offline Last Active Dec 25 2013 06:00 AM

Topics I've Started

OrenVideo - Cross Platform Video Solution

04 December 2013 - 04:51 AM

Hi all


I'm glad to announce my new product: OrenVideo - Cross Platform Video Solution


Few words about the product:


OrenVideo let you put videos in your game/application with less then an hour! without worrying about memory or speed,

and the cool thing about it is that you have built-in alpha channel so you can play transparent videos...

want to play video inside your game textures? no problem!

want to play some cut scenes? easy!

want to create your entire UI with videos? done!


to see it in action in real published game, check out: http://www.youtube.com/watch?v=DE5QCcz6CDg

Super Splatters uses OrenVideo a lot!

  • the entire UI done with videos.
  • in game effects done with videos.
  • in game markers/objects done with videos.

and more...


to know how many OrenVideo instances are used in real-time check out the green rects in the video.

here is what Niv Fisher - Founder & Lead programmer at Spiky Snail had to say about OrenVideo:


"After using Bink extensively in the XBLA version, also licensing it for PC turned out to be too expensive. We decided to try out OVD and were thoroughly impressed with the ease of integration, the simplicity of the tools and the support we got. The quality and performance of this library was on par or better for a fraction of the price."


Few of OrenVideo highlights:

  • Cross platform (windows,mac, linux, android).
  • Internal alpha channel for transparent videos.
  • Simple and well documented SDK, easy to debug, you can integrate it in less than an hour!.
  • One small library and you are set. no special system software & audio codec needed, it is completely self-contained and not rely on any 3rd party libraries.
  • Same API and data files on multiple platforms.
  • Highly optimized to take advantage of every platform it supports. you will be shocked how well it perform, you can use it for in-game videos, cut-scene videos and even build your entire UI with it!
  • Optimize to use minimal memory as much as possible, no need to worry about codecs that eats your memory!.
  • Design to work hand by hand in multi-threaded environments.


so how much it will cost you?

check out: http://www.orenvid.com/pricing


for more info, check out my site at: http://www.orenvid.com




Fair Price For Cross Platform Video Solution? VOTE To make a change...

09 August 2012 - 02:31 AM

[moderator edit] Please don't cross post.

Fair Price For Cross Platform Video Solution? VOTE To make a change...

08 August 2012 - 02:43 AM

Hi all

i'm working full power on publishing cross platform video solution.
first stage it will be:
1. pc
2. linux
3. mac
second stage will depend on sells so eventually i will add top consoles:
1. xbox 360 (future 720)
2. ps3
more platforms will be added based on customers requirements...

now for the important stuff: Pricing
as you already know or not, its a pain in the butt to create such a solution and at the same time making it fast enough to run multiple hd videos at 30 fps game...

i'v added a poll at the top left corner of my blog: http://orenk2k.blogspot.com/ so i could know what do you think:
believe it or not, but your vote will have a HUGE influence on the price.
pool keywords:
indie = independence/independent
comm = commercial

so... if you have friends, colleague or people who might consider buying such a solution, tell them to vote...

thanks and cya.

SSAO seems strange, help needed...

14 July 2008 - 11:31 PM

i created SSAO effect but its seems very strange, i hope that some one will tell me whats wrong because i cant see any problem with my code.
first i see the edges of the triangles popping out
second, there is white line at the corners, where it needs to be black/shaded

triangles edges:
Image Hosted by ImageShack.us<br/>By orenk2k at 2008-07-15

white lines:
Image Hosted by ImageShack.us<br/>By orenk2k at 2008-07-15

here is the depth shader:
Vertex shader
REAL4 vPositionView = mul(In.vPosition, g_matWorldView);
Output.fDepth = length(vPositionView.xyz);
Output.vNormal = mul((In.dwNormal)*2-1, (REAL3x3)g_matWorldView);
Output.vNormal = normalize(Output.vNormal);

Pixel shader
return REAL4(In.vNormal.x, In.vNormal.y, In.vNormal.z, In.fDepth);

frustum corner calc (in client side)
FLOAT farY = tanf(m_pCamera->GetFov() / 2) * m_pCamera->GetFarPlane();
FLOAT farX = farY * m_pCamera->GetAspect();
D3DXVECTOR4 vCorner(farX, farY, m_pCamera->GetFarPlane(), 0.0f);
// note: camera fov in radians

SSAO Shader:
Vertex shader:
In.vPosition.xy = sign( In.vPosition.xy);
Output.vPosition = REAL4( In.vPosition.xy, 0.0f, 1.0f);
Output.vTexCoords = In.vTexCoords;
Output.vViewDirToFrustumCorner = REAL3(In.vPosition.xy,1)*g_vDirection.xyz; 
// note: g_vDirection = vCorner computed in client side

Pixel shader:

//reconstruct eye-space position from the depth buffer
REAL depth = tex2D(DepthSampler, In.vTexCoords).a;
REAL3 se = depth * normalize(In.vViewDirToFrustumCorner);

REAL3 randNormal = tex2D( RandNormalSampler, In.vTexCoords*20).rgb;
REAL3 normal = tex2D(DepthSampler, In.vTexCoords).xyz;   

const int num_samples = 16;
REAL finalColor = 0.0f;
for (int i = 0; i < num_samples; i++)
	REAL3 ray = reflect(samples[i].xyz, randNormal);
	// add view space normal and bias  
	ray += normal * g_fNormalBias;	    
	ray *= g_fSampleRadius;
	// new (view-space) sample in a sphere of sampleRadius
	REAL4 sample = REAL4(se + ray, 1.0f);

	//determine clip-space locations of our current sample point
	REAL4 ss = mul(sample, g_matProjection);

	//determine the texture coordinate of our current sample point
	REAL2 sampleTexCoord = 0.5f * (ss.xy/ss.w) + REAL2(0.5f, 0.5f);
	sampleTexCoord.y = 1.0 - sampleTexCoord.y;	
	//read the depth of our sample point from the depth buffer
	REAL sampleDepth = tex2D(DepthSampler, sampleTexCoord).a;
	//compute our occulusion factor
	REAL depth_diff = depth - sampleDepth;
	REAL occlusion = g_fDistanceScale * max(depth_diff, 0.0f);
	finalColor += 1.0 / (1.0f + (occlusion * occlusion) * 0.1);
REAL col = finalColor/num_samples;
return REAL4(col, col, col, 1.0f);