This commit is contained in:
Hugues Hoppe 2016-06-14 16:15:02 -07:00
Родитель 0f6f765fd5
Коммит fa7eb5de72
4 изменённых файлов: 88 добавлений и 101 удалений

Просмотреть файл

@ -1,4 +1,4 @@
<!DOCTYPE html>
<!DOCTYPE html>
<html lang="en-us">
<head>
@ -191,17 +191,17 @@
</tr>
<!--<tr id="pub_newqem">
<td class="lcell">
<img class="thumbnail" src="thumbnails/newqem.red.jpg" width="240" height="136" alt=""/>
</td>
<td class="rcell">
<div class="title"><a href="http://research.microsoft.com/~hoppe/proj/newqem/">New quadric metric for simplifying meshes with appearance attributes</a>.</div>
<div class="authors">Hugues Hoppe.</div>
<div class="pub"><cite>IEEE Visualization 1999 Conference</cite>, 59-66.</div>
<div class="desc">Efficient simplification metric designed around correspondence in 3D space.</div>
<div class="bins"><span class="sprogram">programs:</span> <a href="#prog_MeshSimplify">MeshSimplify</a></div>
<div class="demos"><span class="sdemos">demos:</span> create_pm_gaudipark, view_pm_gaudipark</div>
</td>
<td class="lcell">
<img class="thumbnail" src="thumbnails/newqem.red.jpg" width="240" height="136" alt=""/>
</td>
<td class="rcell">
<div class="title"><a href="http://research.microsoft.com/~hoppe/proj/newqem/">New quadric metric for simplifying meshes with appearance attributes</a>.</div>
<div class="authors">Hugues Hoppe.</div>
<div class="pub"><cite>IEEE Visualization 1999 Conference</cite>, 59-66.</div>
<div class="desc">Efficient simplification metric designed around correspondence in 3D space.</div>
<div class="bins"><span class="sprogram">programs:</span> <a href="#prog_MeshSimplify">MeshSimplify</a></div>
<div class="demos"><span class="sdemos">demos:</span> create_pm_gaudipark, view_pm_gaudipark</div>
</td>
</tr>-->
<tr id="pub_vdrpm">
@ -247,17 +247,17 @@
</tr>
<!--<tr id="pub_tvc">
<td class="lcell">
<img class="thumbnail" src="thumbnails/tvc.red.jpg" width="240" height="136" alt=""/>
</td>
<td class="rcell">
<div class="title"><a href="http://research.microsoft.com/~hoppe/proj/tvc/">Optimization of mesh locality for transparent vertex caching</a>.</div>
<div class="authors">Hugues Hoppe.</div>
<div class="pub"><cite>ACM SIGGRAPH 1999 Proceedings</cite>, 269-276.</div>
<div class="desc">Face reordering for efficient GPU vertex cache, advocating a FIFO policy.</div>
<div class="bins"><span class="sprogram">programs:</span> <a href="#prog_MeshReorder">MeshReorder</a></div>
<div class="demos"><span class="sdemos">demos:</span> create_vertexcache_result, view_vertexcache_result</div>
</td>
<td class="lcell">
<img class="thumbnail" src="thumbnails/tvc.red.jpg" width="240" height="136" alt=""/>
</td>
<td class="rcell">
<div class="title"><a href="http://research.microsoft.com/~hoppe/proj/tvc/">Optimization of mesh locality for transparent vertex caching</a>.</div>
<div class="authors">Hugues Hoppe.</div>
<div class="pub"><cite>ACM SIGGRAPH 1999 Proceedings</cite>, 269-276.</div>
<div class="desc">Face reordering for efficient GPU vertex cache, advocating a FIFO policy.</div>
<div class="bins"><span class="sprogram">programs:</span> <a href="#prog_MeshReorder">MeshReorder</a></div>
<div class="demos"><span class="sdemos">demos:</span> create_vertexcache_result, view_vertexcache_result</div>
</td>
</tr>-->
</table>
@ -441,7 +441,7 @@
<li>saves the resulting optimized base mesh to a file. (The overall process takes a few minutes.)</li>
</ul>
<p>To view the result,</p>
<div class="codeline"><b>G3dOGL</b> distcap.sub0.m <b>"Subdivfit</b> -mf distcap.sub0.m -nsub 2 -outn |<b>"</b> -st demos/data/distcap.s3d -key NDmDe -hwdelay 5 -hwkey N</div>
<div class="codeline"><b>G3dOGL</b> distcap.sub0.m <b>"Subdivfit</b> -mf distcap.sub0.m -nsub 2 -outn |<b>"</b> -st demos/data/distcap.s3d -key NDmDe -hwdelay 5 -hwkey N</div>
<ul>
<li>reads the base mesh together with a second mesh obtained by applying two iterations of subdivision,</li>
<li>shows the first mesh (<kbd>N</kbd>) with flat-shaded faces and edges (<kbd>DmDe</kbd>),</li>
@ -575,8 +575,8 @@
<!--<h2>Optimized mesh traversal</h2>
<p>The program <code>MeshReorder</code> reorders the triangle faces (and optionally vertices) within a mesh so as to exploit a GPU vertex cache to minimize memory bandwidth and shading cost.</p>
<p>For example, within <code>demos/create_vertexcache_result</code>,</p>
<p>The program <code>MeshReorder</code> reorders the triangle faces (and optionally vertices) within a mesh so as to exploit a GPU vertex cache to minimize memory bandwidth and shading cost.</p>
<p>For example, within <code>demos/create_vertexcache_result</code>,</p>
<div class="codeline">Filtermesh demos/data/small_stell_dodecahedron4.nsub4.m -renumber -removeinfo | <br/>
<b>MeshReorder</b> - -fifo -cache_size 16 -analyze -meshify5 -color_corners 1 -analyze >small_stell_dodecahedron4.nsub4.vertexcache.m</div>
<div class="codeline">G3dOGL small_stell_dodecahedron4.nsub4.vertexcache.m -key DmDe -lightambient .70 -lightsource .35</div>
@ -606,16 +606,16 @@
<p>The mouse/keyboard UI controls include:</p>
<pre>
Mouse movements:
left mouse: rotate
middle mouse: pan
right mouse: dolly
shift-left: pan
shift-middle mouse: roll
shift-right mouse: zoom
left mouse: rotate
middle mouse: pan
right mouse: dolly
shift-left: pan
shift-middle mouse: roll
shift-right mouse: zoom
(mouse movements are with respect to current object; see '0-9' below)
Important key strokes:
?: print complete list of keys
? : print complete list of keys
D?: print list of keys prefixed by 'D'
De: toggle edges
Ds: toggle shading of faces
@ -623,18 +623,18 @@
Dm: toggle Gouraud/flat shading
DP: save current window as an image file
DS: toggle show some sliders
S: toggle show some other sliders
j: jump to a default viewpoint
J: automatically rotate object
S : toggle show some other sliders
j : jump to a default viewpoint
J : automatically rotate object
D/: edit viewpoint filename
,: read the viewpoint
.: save the viewpoint
, : read the viewpoint
. : save the viewpoint
0-9: select object (0=eye_frame, 1=first object, 2=second object...)
u: display/hide current object
N: select next object
P: select previous object
- =: decrease/increase the magnitude of all movements
f: toggle flying (usually with '0' eye selected)
u : display/hide current object
N : select next object
P : select previous object
-=: decrease/increase the magnitude of all movements
f : toggle flying (usually with '0' eye selected)
</pre>
<p>To record a 6-second (360-frame) video of a rotating mesh and then view the resulting video:</p>
<div class="codeline">G3dOGL demos/data/standingblob.orig.m -st demos/data/standingblob.s3d -key iioJ -video 360 output_video.mp4</div>
@ -669,8 +669,8 @@
<h3>Frame stream (<code>*.frame, *.s3d</code>)</h3>
<p>See the documentation at the end of <code>libHh/FrameIO.h</code></p>
<p>This text or binary format encodes a 4&times;3 affine transformation (plus an object id and a scalar field-of-view zoom) as a text line. This format is used to record default viewing configurations, and sequences
of frames for flythroughs.
<p>This text or binary format encodes a 4&times;3 affine transformation (plus an object id and a scalar field-of-view zoom).
It is used to record default viewing configurations, and sequences of frames for flythroughs.
It usually represents the linear transform from object space (or eye space) to world space. The stream can be either text or binary.</p>
<h3>Progressive mesh (<code>*.pm</code>)</h3>
@ -714,6 +714,7 @@
<h2>License</h2>
<p>See the file <a href="./license.txt"><code>./license.txt</code></a>.</p>
<!--<p>This project has adopted the <a href="http://microsoft.github.io/codeofconduct">Microsoft Open Source Code of Conduct</a>. For more information see the <a href="http://microsoft.github.io/codeofconduct/faq.md">Code of Conduct FAQ</a> or contact <a href="mailto:opencode@microsoft.com">opencode@microsoft.com</a> with any additional questions or comments.</p>-->
</body>
</html>

Просмотреть файл

@ -31,9 +31,7 @@
#define HH_RSTAT(S, range) do { HH_STAT(S); for (auto e : range) { S.enter(e); } } while (false)
#define HH_RSTAT_RMS(S, range) do { HH_STAT(S); S.set_rms(); for (auto e : range) { S.enter(e); } } while (false)
// #define AS(x) x
#define MAF_SCOPED(x)
#define AS(x) x
#define JPP(arglist) arglist // Image_IO.cpp jpeglib.h
#define E(x) // MathOp.h and others
@ -74,24 +72,10 @@
#define HH_PRINTF_ATTRIBUTE(x)
#define CONSTEXPR
#define CONSTEXPR2
#define SHOW(x)
#define SHOWL
#define HH_DECLARE_OSTREAM_EOL(...) \
struct has_ostream_eol_aux<__VA_ARGS__> { static CONSTEXPR bool value() { return true; } }
#define HH_DECLARE_OSTREAM_RANGE(...)
// I cannot get this to work completely. For now, it works only if SHOW has a single argument.
// #undef SHOW
// #define SHOW dummy_use
// #define SHOW(x, y)
// #define SHOW(...) ((void)(__VA_ARGS__))
// #define SHOW(...) ((void)0)
// #define SHOW(a, b, c, d, e, f)
// #define SHOW()
// #define SHOW printf
// #define SHOW(x) ((void)0)
// #define SHOW(x, y) ((void)0)
#define SHOW(x)

Просмотреть файл

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<!-- Note: this is a manually authored files that captures many common build settings across projects. -->
<!-- Note: this is a manually authored file that captures many common build settings across projects. -->
<ImportGroup Label="PropertySheets" />
<PropertyGroup Label="UserMacros" />
<PropertyGroup>

Просмотреть файл

@ -117,7 +117,9 @@ bool HW::init_aux(Array<string>& aargs) {
#if defined(_MSC_VER)
// This program is taking care of DPI issues; Windows dwm should never rescale the window contents.
// (default is PROCESS_DPI_UNAWARE; intermediate is PROCESS_SYSTEM_DPI_AWARE.)
assertx(SetProcessDpiAwareness(PROCESS_PER_MONITOR_DPI_AWARE)==S_OK);
// assertx(SetProcessDpiAwareness(PROCESS_PER_MONITOR_DPI_AWARE)==S_OK);
// E_ACCESSDENIED if already set by prior call or in *.exe manifest.
void(SetProcessDpiAwareness(PROCESS_PER_MONITOR_DPI_AWARE));
#else
// assertx(SetProcessDPIAware()); // this older API is available; should be in user32.lib but not found
#endif