Indie VR & Game Developer

Hello! I'm Jason.

I'm a computer programmer with almost 2 decades of experience, now trying to transition from a hobby to a career. I've spent the last several years learning game development with the Unity game engine, and specialize in C# scripting.

I publish my own assets on the Unity Asset Store, aspire to make my own games, and will entertain offers for jobs on projects that suit my skills and interests.

Please enjoy my projects, consider my services, and contact me anytime!

Find Out More

Projects

Monday, June 27, 2016

Update: VR3DImageViewer 1.2

Update: VR3DImageViewer 1.2



VR3DImageViewer has been updated to v1.2!

The major new changes are a new option to change at which depth the image focuses. This is particularly useful when dealing with images that are difficult to focus on, perhaps because the contents of the image around the sides appears to be in front of the image frame. It can also be used to help viewers better focus on a image when they're camera rig is nearer to it.

Various functions of this script have now been exposed to be accessed via your own scripts, to change setting at run time.

Several new Stereoscopic 3D formats have had now been added as supported, include 2 images, Vertical/Horizontal Interlaced, Checkerboard, and Anaglyph (Red/Cyan).

Check the change log for further details.
Change Log:

1.2:
  • Merged the 2 scripts into one. Now there's an option called "Render Method" in the inspector. RenderSwap is the original method meant for Single Cameras/NativeVR. Layered is the method for cases in which RenderSwap doesn't work.
  • Updated setup steps for SteamVR.
  • Fixed an issue with the Layered method that created infinite copies of the image object.
  • Fixed tooltips not displaying.
  • Fixed the bonus screenshot script to render a SBS image instead of cross-eyed.
  • Added a new feature to control a convergence offset to help make images focus at different depths. Explanation as follows:
    • To use the convergence, you need to set a max range. Doing so crops the visible area of the image pair, by 2 pixels per unit. One on each side of the displayed image.
    • The max range is meant to be set by the developer ahead of time, not at runtime. Though for the sake of changing images at runtime you can.
    • The convergence value shifts the images horizontally for each eye by units of pixels.
    • The convergence value can be set at all times. Though to see it have an effect it needs to be at runtime.
    • Setting the convergence to a negative value draws the the focus areas of the stereo image closer to the viewer. Naturally then, a positive value draws it further away.
    • You can use this feature to fix hard to focus stereo images that weren't made properly.
    • You can also use it to dynamically adjust a good image at runtime for different reasons that you may have. Like making a image easier to focus on as the camera rig gets nearer to the image.
    • Dimensions of the image are provided in the editor to help you adjust your mesh scaling as needed, as the cropping causes a loss of any pre-existing viewed aspect ratio. So generally you will want to scale your meshes GameObject in horizontally to compensate for any loss.
    • If you're using the included bonus script to acquire your stereo pictures, you can try bumping up the width of the screenshot before you capture it, to compensate for the pixels you will lose due to cropping. Just remember that you lose twice the pixels of the maxConvergence value.
  • Newly added instances of the script will now try to use RenderMethod settings from pre-existing instances of the script in a scene, as defaults.
  • Added support and public methods for changing textures and image properties at runtime. The following is a full list of methods and variables meant to be accessed via code:
    • Pubic Methods:
      • SetTexture(texture1, texture2, ImageFormat); Texture2 is only needed if using Two Images. ImageFormat is optional but recommended in most cases.
      • Set3DImageFormat(ImageFormat); Pass the new image format as "ImageFormat.SideBySide" for example.
    • Public Variables:
      • swapLeftRight = bool; True = Swap the Left and Right images. False = Don't.
      • stereo = bool; True = Show the displayed image in Stereoscopic 3D. False = Show the same image to each eye. (Left is used for both, unless swapLeftRight is true, then right is used for both)
      • convergence = int; A pos/neg value to offset the textures each eye sees by 2 pixels per unit.
      • maxConvergence = int; A maximum value for the above. The max for this is 1/4 the pixel width of each eyes texture.
  • Added support for 2 source images, one for each eye, to be used.
  • Added support for several new image format types. These formats are less common, and not recommended that you ever create stereo 3D images in these formats. But since such format images exist, this asset might as well support them.
    • Due to the way these formats are, they require a behind the scenes conversion. And because of that they will not work with animated Textures like video. Animated textures should be created in a formats like SBS, TB, and Two Images.
    • These new formats are:
      • Horizontal Interlaced
      • Vertical Interlaced
      • Checkerboard
      • Anaglyph (Red/Cyan only for now)
    • Anaglyph support is done in a way similar to using colored glasses in real life, except the world around the picture remains un-tinted. Due to each eye seeing a significantly different color, some people may experience discomfort after extended use just like with the colored glasses.

Available now on the Unity Asset Store!

My Services

Unity C# Scripting

I'm available for C# scripting for small Unity projects.

Read More

Basic 3D Modeling

I'm experienced with Blender. Basic modeling and rigging.

Read More

Unity Development

I've created many demos, scenes, and even a simple game.

Read More

Virtual Reality Consultation

I've been an VR enthusiast for a few years, and made VR content.

Read More

News / Dev Blog

Contact

Contact me

You can reach me by email or twitter.

Email: darkakumaz-net.us

Twitter: @DarkAkuma_

LinkedIn: Profile