Add files via upload

This commit is contained in:
TimothyLottes
2016-11-08 18:09:16 -05:00
committed by GitHub
parent d40a821607
commit bf794b8cea
5 changed files with 104 additions and 12 deletions
+24
View File
@@ -0,0 +1,24 @@
<html><head><link rel="stylesheet" href="style.css"></head><body><div class="page">
<h1>20161103 - Game List</h1>
<br>
<b>C64</b>
<br>
<a href="http://www.knights-of-bytes.com/sams-journey">Knights of Bytes - Sams Journey</a><br>
<br>
<b>Flash</b>
<br>
<a href="http://www.rippledotzero.com">Ripple Dot Zero</a><br>
<br>
<b>PC</b>
<br>
<a href="https://forums.tigsource.com/index.php?topic=39635.0">Aerobat</a><br>
<a href="http://www.chasmgame.com/">Chasm</a><br>
<a href="https://forums.tigsource.com/index.php?topic=52597.0">Cyber Shadow</a><br>
<a href="http://hollowknight.com/">Hollow Knight</a><br>
<a href="http://dyingsungame.com/">House of the Dying Sun</a><br>
<a href="http://owlboygame.com/">Owlboy</a><br>
</div></body></html>
+63
View File
@@ -0,0 +1,63 @@
<html><head><link rel="stylesheet" href="style.css"></head><body><div class="page">
<h1>20161104 - Is OpenVR Actually Open?</h1>
<br>
References,<br>
<a href="https://github.com/ValveSoftware/openvr/wiki/API-Documentation">OpenVR Documentation</a><br>
<br>
<center><iframe width="560" height="315" src="https://www.youtube.com/embed/plRjxIclou8" frameborder="0" allowfullscreen></iframe></center>
<br>
As someone who was waiting for an Open VR API,
I watched the above linked YouTube presentation from Steam Dev Days,
and decided to see if such an API actually has now arrived (as of November 2016).
Something which might enable me to continue the work I had to stop a while back
when consumer VR got locked down and disabled my ability to do what I needed as a developer.
Lets see how the current OpenVR stacks up,
<br>
<br>
<ul>
<li><strong>Ability to Use Vulkan?</strong> - Looks like this is in progress based on the YouTube video. Very happy about this.
<br>
<br>
<li><strong>Language Agnostic?</strong> - OpenVR requires C++,
<i>"The API is implemented as a set of C++ interface classes full of pure virtual functions"</i>.
OpenVR is effectively closed to other languages because it does not support standard C exports.
<br>
<br>
<li><strong>Application Ownership of Display?</strong> - Specifically open ability for the application
(sold directly to the consumer, or sold through Steam) to have full ownership of the HMD display output
without being forced to go through an out-of-process compositor, and with ability to do the ultimate in low-latency: front-buffer rendering.
<br>
<br>
The <a href="https://github.com/ValveSoftware/openvr/wiki/IVRSystem::ComputeDistortion">ComputeDistortion</a> and other related functions
do provide ability to query the image transform required for direct rendering.
Unfortunately this function, based on the docs, does not have an obvious return value of if the coordinate can be seen or not.
Seems like one has to use <a href="https://github.com/ValveSoftware/openvr/wiki/IVRSystem::GetHiddenAreaMesh">GetHiddenAreaMesh</a> instead
and then write some complex code to check if the pixel intersects the mesh. This problem seems relatively minor to fix in the OpenVR API.
<br>
<br>
The only display interface on the
<a href="https://github.com/ValveSoftware/openvr/wiki/API-Documentation">API Documentation Page</a> says,
<i>"IVRCompositor - Allows an application to render 3D content through the VR compositor"</i>.
Which is a very interesting choice of words for an "Open" API.
The idea that the application needs to do something to be "allowed" to render 3D content,
and only "allowing" such 3D content to go through some non-application VR compositor?
I only see a <a href="https://github.com/ValveSoftware/openvr/wiki/IVRCompositor::Submit">Submit</a> function.
So no front-buffer access, and also no back-buffer access (no ability to create your own swap chain).
Looking deeper at the <a href="https://github.com/ValveSoftware/openvr/blob/master/headers/openvr.h">openvr.h</a> headers reveals,
<tt>EVRSubmitFlags</tt>,
which has a comment which confirms that the API only supports the highest overhead path of an extra copy in an out-of-process compositor:
<i>"/** Allows the application to control how scene textures are used by the compositor when calling Submit. */"</i>.
Again the "Allows" wording.
Digging deeper there is <i>"Submit_LensDistortionAlreadyApplied = 0x01"</i>,
which does seem to provide un-WIKI-documented support for submitting a post-warped image.
</ul></li>
<br>
<br>
<b>And the Conclusion Is ...</b>
<br>
<i>Not there yet.</i>
<br>
Once an application sold on Steam can run VR with Vulkan,
and with application-owned HMD display with direct front-buffer access,
then it will be time to re-evaluate.
</div></body></html>
+5 -5
View File
@@ -4,11 +4,11 @@
<center><i>Getting Owlboy working on a 29" Makvision VGA Arcade CRT from a VGA Port of an APU based laptop.</i></center>
<br>
Owlboy appears to be rendering around 640 pixels across, and then when windowed, doubling pixels to get to 1280.
It is possible to get Owlboy full-screen on a 640x480x60Hz VGA output, for pixel perfect CRT display (no doubling).
It is possible to get Owlboy full-screen on a 640×480×60Hz VGA output, for pixel perfect CRT display (no doubling).
<br>
<br>
Current AMD 16.9.2 Driver has a bug which won't allow the user to make a custom resolution.
Was unable to find old drivers on the AMD website until I duckduckgo'ed for old driver and found a link which can be used to grab old drivers,
Current AMD 16.9.2 Driver has a bug which wont allow the user to make a custom resolution.
Was unable to find old drivers on the AMD website until I duckduckgoed for old driver and found a link which can be used to grab old drivers,
<br>
<br>
<a href="http://support.amd.com/en-us/download/apu/previous?os=Windows%208.1%20-%2064">http://support.amd.com/en-us/download/apu/previous?os=Windows 8.1 - 64</a>
@@ -23,7 +23,7 @@ I found I was unable to get full-screen to work at the correct resolution otherw
Next bring up <tt>Radeon Settings</tt>, click on the <tt>Preferences</tt> button at the bottom,
and then click on the <tt>Radeon Additional Settings</tt>. This brings up a new window.
Click on the <tt>Custom Resolutions</tt> button for the attached VGA display.
Then click on the <tt>New</tt> button and setup for 640x480x60Hz with Progressive and CVT as the timing standard.
Then click on the <tt>New</tt> button and setup for 640×480×60Hz with Progressive and CVT as the timing standard.
Then click <tt>Verify</tt> to generate the mode. Accept the mode.
With the mode set, start Owlboy and go into full-screen mode (F11 if I remember right),
and remember to turn letter-box on.
@@ -38,4 +38,4 @@ The game played this way is stunning.
<br>
<a href="20161105-B.jpg"><img src="20161105-B.jpg" width="640"></a>
</center>
</div></body></html>
</div></body></html>
+2
View File
@@ -29,6 +29,8 @@ O OOO ||..||OO||||||||||OOo || ||||||||||||| ||||OO|| |o| ||||||||OO||OOO
<br>
<b>2016</b><br>
<a href="20161105.html">20161105 - Owlboy via CRT</a><br>
<a href="20161104.html">20161104 - Is OpenVR Actually Open?</a><br>
<a href="20161103.html">20161103 - Game List</a><br>
<br>
</div></body></html>
+10 -7
View File
@@ -1,13 +1,16 @@
body { text-align:justify; background-color:#222; color:#aaa; font-family:Consolas,monospace; font-size:12px; line-height:150%; width:132ch; margin-left:auto; margin-right:auto; margin-top:1em; margin-bottom:1em; }
body { background-color:#222; color:#aaa; font-family:Consolas,monospace; font-size:12px; line-height:150%; width:132ch; margin-left:auto; margin-right:auto; margin-top:1em; margin-bottom:1em; }
.page { background-color:#333; border:2px solid #111; padding:2em 2ch; }
tt { color:#777; font-family:Consolas,monospace; }
tt { color:#c84; font-weight:bold; font-family:Consolas,monospace; }
pre { color:#777; margin:0 0; font-family:Consolas,monospace; }
i { color:#777; }
b { color:#ccc; font-weight: bold; }
a { color:#777; }
i { color:#48f; }
b { color:#ccc; font-weight:bold; }
a { color:#fc0; }
s { color:#555; }
h1 { color:#ccc; font-size:200%; margin:0 0 0 0; line-height:125%; text-align:center; }
ul { margin:0 0; padding-left:0; list-style-type:none; }
ol { margin:0 0; padding-left:0; list-style-type:none; }
li:before { content:": "; color:#555; }
img { border:2px solid #111; }
li { text-indent:-2ch; padding-left:2ch; }
li:before { content:"> "; color:#555; }
img { border:2px solid #111; }
iframe { border:2px solid #111; }
strong { color:#f42; font-weight:bold; }