little fixes
This commit is contained in:
Родитель
0f6f765fd5
Коммит
fa7eb5de72
91
README.html
91
README.html
|
@ -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×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×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>
|
||||
|
|
20
cpp.hint
20
cpp.hint
|
@ -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
|
||||
|
|
Загрузка…
Ссылка в новой задаче