home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The Best of Windows 95.com 1996 September
/
WIN95_09962.iso
/
vrml
/
glview.zip
/
README.TXT
< prev
next >
Wrap
Text File
|
1996-06-15
|
28KB
|
824 lines
==============================================================
GLView version 2.09 15.06.96
3D OpenGL Viewer for Windows NT 3.51-4.0 / 95
Copyright (C) 1994-1996 Holger Grahn
All Rights Reserved
==============================================================
For further informations and orders contact:
USA:
EMD Enterprises
73 East Forrest Avenue
Suite 20
Shrewsbury, PA 17361
USA
Sales: (800) 8989-EMD
Support: (717) 235-4423
FAX: (717) 227-9746
email:
Internet: sales@emdent.com
support@emdent.com
CompuServe: 74777,171
WWW-SITE: http://www.emdent.com
GLView Compuserve Forum : GO GLVIEW
DISTRIBUTION for other countries:
VISUAL ILLUSIONS
MKC SOFTWARE
Hasselbusch 71
24558 Henstedt- Ulzburg
Germany
phone & fax : +49-4193-969420
eMAIL: 101326.2466@compuserve.com
==============================================================
RESELLERS WORLD WIDE WANTED
==============================================================
README.TXT
Evaluation and Registration
===========================
This is not free software. You are hereby licensed to use this software
for evaluation purposes without charge for a period of 30 days.
The demonstration version will expire after the evaluation period.
If you use this software after the 30 day evaluation period a registration
fee of $65 is required. See license.txt and order.txt for more information.
System Requirements
===================
- Microsoft WINDOWS NT 3.51 / 4.0
- OpenGL compatible Display.
- wininet.dll + urlcache.dll Internet DLL (supplied)
or
- Microsoft Windows 95
- OpenGL librarys (opengl32.dll, glu32.dll) for Windows 95
- wininet.dll + urlcache.dll Internet DLL (supplied)
Installation
============
Installation of Demo Version from ZIP file (glview.zip):
Unzip the GLVIEW.zip file to a new directory on the hardisc. A program like WinZip 6.0 supporting
long file names is recommended.
For automatic unzipping of gzipped files copy GNU gzip.exe in a directory of the path.
For Windows95 copy the OpenGL librarys into the Windows system directory or into the GLView directory.
Installation with installation program :
Start setup.exe from the first installation disk or from the DISK1 directory
of the CD-Rom distribution
Startup
=======
glview.exe
Starts glview with a default OpenGL pixel format mode (Double-buffer, RGB)
glview.exe /x
Starts GLView without GL-initialization, first action should be to setup Pixelformat using menu Options->
Pixel Format -> Set.
GLView automatically use OpenGL acellerator hardware like graphics boards equipped with a 3DLabs
GLint chip.
A 3D file or a WWW-VRML-url can be specified on the commandline.
Please create and configure a network caching directory in WWW->Options->cache directory on a filesystem
supporting long filenames.
Note that you can remove any contents from this directory, after loading a bunch of scenes.
GLView will not free files from the cache automatically.
For viewing HTML URL┤s the path to your WWW Browser must also be configured.
You can manually associate GLView with 3D file extensions (e.g. wrl, 3dv) using
the "Options->Register file types" command.
For slow machines turn on the following options in the Config->options dialog:
"degrade during move" & degrade style "bounding boxes"
initial window size x 320 y 240 (or larger)
If the cursor is a busy symbol, the texture icon can still be depressed to turn off
texture mapping. The escape key will first disable animation, and secondly texture mapping.
Support questions regarding the hardware support of Matrox graphics cards should
be send to Matrox directly, once Windows 95 drivers are available from Matrox
GLView can be adapted to properly use the right pixelformts.
GLView is availabe as
=====================
- commercial software on 3.5" disks + manual + more examples.
- customized redistribution executable versions for hard or software vendors
- Sourcecode
- GLView classes as a class library
supporting a highlevel MFC GLView View class and lowerlevel
graphical object, attributes and operation classes
for integration in other applications
GLView has been licensed by Siemens Nixdorf AG for bundling with Celsius Pentium Pro OpenGL Workstations.
Fileformats
===========
GLView fully supports VRML 1.0 files with several extensions. (Please see VRML section.)
GLView supports also a own fileformat with extension 3dv.
A short description of this file format is supplied in file readme.txt.
Geo format files (like supplied with Intel 3DR) are also supported for import and export.
POV object scripts containing smooth_triangles can be exported and
support for DXF-Input has been implemented.
Single rgb,dib,bmp,gif,tga or jpeg image files are read in as a single textured, rotatable polygon.
Raw files, containing a triangle per line can be imported and exported.
On import the triangles are automatically converted to a smooth object.
STL files, containing triangles with facet normals can be exported.
A VRML file can be saved, any comments in the original file are lost. Please use info
nodes for persistent annotations.
Single object VRML Files (extension wrl) can be exported after the TOOLS->Combine command has been used.
GLView will then write a IndexedFaceSet with
coordinate, vertex normal, vertex color (as Material) and vertex parameter (TextureCoordinate2)
information. If a triangulated face set is needed, use the Tools->Triangulate command for
conversion.
Support for import of Wavefront obj files with polygons (f) has been integrated.
Texture files can be a 24 Bit rgb or dib/bmp images.
Additional formats are JPEG,GIF,TARGA.
GLView can render an arbitrary scene to a screen resolution independent BMP file.
On Import there is no check for valid fileformats.
The evaluation version has some restrictions on
export (# of polys).
WCVT2POV A good Windows 3D File converter program (including 3DS ==> VRML) can be found on:
http://www.europa.com/~keithr/
Files
=====
GLVIEW.EXE executable
GLVIEW.HLP help file
readme.txt readme file
order.txt Order form
licencse.txt License agreement
whatsnew.txt History
GLViewNodes.html GLView VRML extensions
file_id.diz description
*.3dv GLView native format 3D Data sets
*.geo 3D Data sets
*.rgb SGI rgb texture image
*.dib,*.bmp texture image files, can also be used as "3d" data-set
*.gif,*.tga,*.jpg "
*.3dm GL Material file
*.obj Wavefront data files
*.stl STL triangle format
*.raw RAW 3D-Triangle format
*.wrl VRML 3D Scene description
*.vrml "
*.iv SGI OpenInventor files, GLView only support the ascii version
*.ext.gz gzip compressed files, for automatic unzipping gzip.exe must be in the path.
*.vrl,*.url a small text file containing a reference to a WWW url (normally a VRML file)
format currently incompatible with Windows 95 Internet Explorer URL files.
VRML
====
GLView supports the VRML 1.0 fileformat and nodes with several extensions.
The VRML file format specification can be found on
http://www.wired.com
GLView can directly acess WWW VRML files without using a WWW Browser.
For using GLView with a WWW Browser, add GLView as a helper application.
Example for Netscape:
Inside Netscape :
Select the "Options/Preferences" menu item.
Select the "Helper Applications" item in the pulldown.
Click the "New Type" button.
In the Configure New Mime type dialog enter:
For Mime Type: x-world
For Mime Subtype: x-vrml
In the "Extensions" field enter: wrl,wrl.gz,vrml,wrz
In the "Action" group box click "Launch Application"
In the text entry field enter the full GLView path.
Another option is to save a link to a VRML location inside Netscape
to the clipboard using
Right Mouse Button -> "Copy this link location".
In GLView in the "WWW->Open URL-> url field" or in the url tool bar the
link can be pasted with <Control> v. GLView is than able to resolve relative
WWWInline nodes to the URL for browsers other than Netscape.
Some WWW references for VRML files are built into GLView. The supplied
url files are pointing to some interesting, medium complex VRML files.
If the mouse is dragged over the scenes, GLView searches for Hot-Links (WWWAnchor Nodes).
If a hot-link is displayed, a double-click with the left mouse button will execute the link.
Possible actions are : Jumping to a new camera position, jumping to a new VRML scene, or
spawning the WEB-Browser program specified in the WWW->Options dialog.
Good WWW starting points are :
http://sdsc.edu/SDSC/Partners/vrml/examples.html
http://www.ocnus.com/models/
GLView defaults to Gouraud-Shading for VRML scenes. Initial texture mode and texture loading
depends on "WWW->Options->texture loading"
Note, some files with extension wrl are not VRML 1.0 files, because they
contain other custom nodes or some unsupported Open Inventor nodes.
GLView supports a bunch of Inventor nodes like QuadMesh, TriangleStrip, FaceSet, BaseColor,
Label ....
Other unsupported nodes are ignored or are causing the reading to stop.
Inventor files can be converted to VRML using a tool like IvToVrml. A related tool
on SGI Workstations is ivQuick which optimizes Inventor scenes and ivcat which translates binary
IV files to the ascii version, which GLView may be able to read.
Some GLView wrl files will not render on other VRML browsers, because of custom GLView nodes.
For material bindings "per vertex indexed" "per face" "per face indexed" the diffuse (or base color)
channel (if of the material is used. If the emissive color channel supplies more values than the diffuse
channel, the emissive colors are used for the local colors. Scenes based on emissive materials can be
rendered using "Render->non lighted".
Material 0 ist set as a default for the primitive.
Extensions:
for GLView node extensions please see file GLViewNodes.txt
VRML Tree Editor
================
Using the "Tools->Tree Editor" command the VRML scene tree can be examined and/or edited.
Double-Clicking on a icon displays lower level information.
Nodes can be dragged and dropped around, or can be cut/copied/pasted using the edit menu.
Nodes can be pasted in from file or written to file.
GLView automatically resolves DEF/USE references and duplicate node names.
Paste pastes a link to the node referenced by a copy. It┤s equivalent to writing
USE node in a VRML ascii file.
A full copy, with all DEF/USE references local can be achieved by writing the node to a
temporary file. This file can be pasted into the tree using the "Node->Read" command.
Unknown nodes with proper field definitions can be edited as well.
Single value fields can be edited using the Field->Edit command.
There are 3 Viewing modes
A) Standard Tree View, the VRML tree is displayed as is and can be edited
B) external references, shows only the hierarchy of nodes with references to external
files like WWWInline, WWWAnchor, Texture2
C) named nodes, shows only nodes with a defined name (not fully functional)
Current Limitations:
No Edit of SFBitmask, SFImage fields, MFFields
No Loop Detection on Drag and Drop and Cut & Paste,
If you produce structures like a->b->a GLView will hang.
Not all commands are implemented, the demo version will only support
a subset.
After node renaming or auto node naming the names of other displayed DEF/USE reference node are not
updated automatically, use View->Refresh instead.
To be done :
===========
Optimization of VRML tree, (But Tools->Combine will combine the whole scene
into one object, which can be saved.)
Support for IsA of unknown nodes.
Png textures
transparency
GLView supports emissive only materials, but currently dosn┤t disable lighting automatically.
Use render "Mode->non lighted" as workaround.
Homespace builder files containg materials using only the emissive channel, the diffuse color
is black. This is no problem, the best way to view them is render->non lighted. Only the
bounding-box / wireframe displaymode will then render the edges in black, but black is also
the default window background color, so the workaround is to change the background color to
something different from black.
Not planned
===========
VRML files with Macintosh end of line (\r) character
Support for the crease angle in ShapeHints, GLView will smooth all edges between
faces with some shared vertex information. Turn on flat-shading for scenes depending
on this value.
Known Problems
==============
If you enable 16 Bit z-buffer, rendering could look a bit strange.
Workaround: Enter an higher number into Camera-Viewpoints->znear (e.g. from 0.0001 to 1.0)
In same cases it may take a while if a started Internet Open operation will be aborted
using the stop button. But you can still continue, to explore the current scene or
load a new one.
Matrox Graphicsboards can do OpenGL acceleration only in some display modes and with a 16 Bit
Z-buffer and the right amount of Memory installed.
Try to enable a 16-Zbuffer by enabling "Options->Config->16 Bit z-buffer" and restart GLView.
Verify that "Options->GL Info" shows the Matrox driver instead of the Microsoft driver.
If this is not working try to run GLView with the /x parameter and choose a GL Pixelformat via
Options->Pixelformat->set depthBits 16 + double-buffer.
For some data files backface culling must be disabled via Rendering->Options->backface cull.
For DXF, RAW and GEO files this is done automatically.
If the picture is still very dark (e.g. with RAW or GEO files) flip the computed normals
of the object using Rendering->Options->flip normals
Not all custom texture parameter functions available in the dialog Texture->Parameters are fully
implemented.
Sometimes in wireframe render mode especially if non double-buffering modes, the system crash.
This is a known Microsoft OpenGL bug.
The Help file does not document all functionality.
This version supports only one object per 3DV file, but multiple objects are
read into the sceen tree using DXF or VRML input.
Rendering with fog enabled seems to be strange, because for a object in the center fog is applied on
both sides in front and in the back of the viewer. This seems to be an OpenGL problem.
Some 2D DXF primitives are not converted or not converted correctly and objects with a EKS
transformation are not transformed correctly. In order to do operations on a DXF-File after import, the
dataset stored in a display tree must be converted to one single object using the Tools->Combine
command.
DXF-Files with optimal import result should contain 3d meshes, 3d polyface meshes (options or the
polyline entity) or 3d face primitives.
DXF files can currently not be saved as VRML with Layer and object information preserved.
But they can be saved as one large IndexedFaceSet primitive with local colors applied.
If VRML scene lights are enabled, scenes are often to bright. (e.g. WCVT2POV put *several*
point lights in the scene.) The options are to darken all lights by a factor or to disable
VRML scene lights. This can be done using the WWW->Options dialog.
If the WALK speed seems to be strange, adapt it to the scene by change the value
"Camera->Viewpoints->distance" or "Camera->Viewpoints->speed".
For authors I recommend to explicitely specify focalDistance nearDistance and farDistance for
supplied VRML camera nodes.
The default setting for Walk and pan is "locked to ground plane", movement is parallel to
the ground plane. If you want to walk directly in the viewing direction disable check
"Camera->Relative Move". If the scene has a camera with something like a 45 degree look
on some scene you will need to check this option, if you want to approach the object.
Quick Tour
==========
Start the program
drag around with the mouse
(this is camera->rotate mode)
camera->reset
will bring back the default view
Rendering
=========
try render menu:
"render->wireframe" or toolbar button
"render->flat" "
"render->gouraud" "
"render->vertices"
"render->bounding box"
..
now once again
render>wireframe
& render->lighted you get a lighted wireframe display
Go back to
"render->gouraud"
mode.
Material
========
try the Material menu
material->load
choose a predefined material from the list box
material ->edit
click with the mouse in the diffuse entry field,
now press EDIT to edit the diffuse color using the Windows color dialog box
choose a color , Exit & Apply
To change the background color use
material->Background
Texture Mapping
===============
To load a texture use
material->Load texture
choose a texture e.g. brick.rgb
To change OpenGL texture mapping parameters
material->Texture Options
Enter into the "scale" edit field:
3 3 3 <Enter>
The texture uvw parameters are scaled by (3,3,3) resulting in a smaller texture image.
0.3 0.3 0.3 <Enter>
will make the texture larger.
Close the dialog using <Escape> or "Close".
Try the filtering options only if you have time or a hardware acellerator
Switch off texture mapping using
Render->textured or toolbar button
Special effects
===============
Deforming
=========
On a Standard 3DV model (e.g. ronny the default data set)
Say
Tools->deform->sphere
enable the check boxes for enable and drag + Press "Apply"
drag around with the mouse, the model should deform to a imaginery sphere.
Use shift + drag to drag in the z-direction
If you do no see an effect, change the radius edit field to higher numbers (negative
numbers (e.g. -0.9 )are also working, the points on the surface are moving away from
the sphere).
Morphing
========
On a standard object type data sets (e.g. ronny, cow, ...)
Open
Tools->Morph
"OK"
The vertices of the object are dynamically interpolated into a sphere.
Open
Tools->Morph
again to change morph options.
Use the t0 t1 sliders to select an interestinng sub-range of the animation.
Choose a different Morph Type like
"Cylinder", "Box", "Cone" ...
+ press "Apply"
Note that the default alignment axis of the morph is the z-Axis == up,
but standard objects are aligned y-axis up.
As an example on how to apply a custom morph axis, see the Morphed*.wrl
GLView VRML examples.
You can stop the animation by toggling the play toolbar button.
It┤s possible to save the intermediate shapes to VRML or 3DV.
Intermediates Shapes of the deform process, are currently not available for save.
Advanced:
Some types for image warping is also possible using the morph node. Creating
a VRML file with a fine meshed surface. E.g. by using GLView->File->New Object
create a fine tesselated plane, apply your texture and include a morph node.
To create a spinning logo :
==========================
"File->NewFontLogo"
enter the logo text.
"ok"
a 3D logo should now come up and rotates.
Press "Camera->Spin" to let the logo spinning.
If you want it textured check the "Texture Parameters" check box in the dialog, and load
a texture like brick.rgb with Material->LoadTexture
It┤s possible to create some funny symbols by using addtional TrueType fonts from
CorelDraw or similar programs, and using symbol fonts like windings.
Try also to use different fonts, or font styles like Bold, Italic.
To create some symbols for custom vrml files, choose a wingdings fonts and lookup a
character code e.g. by using the Windows->Accessories->Character Map program.
Basic navigation:
================
For a "one object" data file or any scene after Camera->Reset has been applied
use Camera->Orbit mode
Mouse Movements orbits or spins the viewer around the object
Control + horizontal movement zooms
Shift + horizontal movement rolls ,
Cursor keys are also orbiting around the object
Page Up+Down are zooming
If the mouse is still pressed but no longer moved, the last orbit is
repeated automatically. Movement is always relative to the point where the mouse
first was pressed.
For a "scene" data file like a room or house etc.
use Camera->Walk mode
vertical mouse movements are moving in and out the scene
horizontal mouse movements are turning the view direction to the left or right
Shift + vertical mouse movements are turning the view direction to up or downt
Control + mouse movements are moving left/right up/down
Cursor keys are also moving in/out / moving left/right
<Control>Cursor keys are also turning up/down turning left/right
<Shift> Cursor keys are also orbiting around the current camera target
Page Up+Down are moving up/down
All mouse movements are repeated after a while, movement is relative to the starting point,
where the mouse first was pressed.
Internet Access
===============
If you have direct Internet access, GLView can load Internet VRML + Texture files.
(To verify your internet conncetion make sure that little programs like
ping www.microsoft.com
or
ftp ftp.microsoft.com
are working.
)
Choose an Internet VRML url to open:
a) choose or enter a url using WWW->Open Url
b) drag a GLView vrl/url file from the file manager into the GLView Window
c) find a VRML (wrl extension) link in your Web-Browser
copy the link. (Netscape->Right Mouse Button->Copy this link location)
+ paste it into the url bar location field
The "Stop" Button will be enabled, the logo animation will start. After a while
a Receiving message ... will appear. Once the file is completely retreived, GLView
will display. During Retreival you can continue, walking the current scene.
To abort network operation press the stop button. It might take a while, until
the actual operation will be finished.
GLView will place all retreived files into the GLView cache directory.
To
Performance tips
================
General :
use a small window size (a default (small) size can be specified in Options->Config)
use a small dataset
use a graphics card with fast pixel transfer.
make sure Rendering -> Options -> Backface culling is checked (might be disabled by GLVIEW)
(for VRML files a ShapeHints node in the file will have precedence )
For DXF-Files use the Tools->Combine command
Texture-mapping is quite fast in non-lighted mode : select Render->Non lighted
If accepatable disable Texture Options->perspective correction
Use wireframe, or lighted vertices modes for complex data set to adjust camera,
than switch to gouraud or enable "Options->Config->degrade during move" with
style set to bounding box.
Enable "Render->Style->Vertex->Drawstyle" only for data sets with few vertices.
Try to check options->build_tristrips before loading a file.
Try to disable VRML scene lights using the www->options dialog and/or
try the Tools->Combine command,eventually with checking Options->Config->build triangle strips
before.
Textures image files could be prescaled to a power of two, and should not be to large.
eg. 128*128 might be enough.
If a scene is to slow with texture mapping enabled, quick disable texture mapping using
the <escape> key.
How to find more data
=====================
Internet: there are different sites with 3D data-sets,
see also the VRML references above.
Very good 3D Models can be found and purchased from Viewpoint Data Labs.
Compuserve Forums:
COMANIM: some DXF / Viewpoint datasets
GRAPHDEV: RAW /OBJ/DXF + Tools for creating raw files e.g. BlobSculptor
for size reasons the evaluation version contains only a few small to modest size models.
3DV-Fileformat
==============
3dv files are containing one object
The 3 object types of main interest are
- Shell a polyhedral object
- ShellIndexed a polyhedral object with more level of inderection and group information
- Mesh a quadrilateral Grid surface
All lists and objects are enclosed with { and }.
The basic information in each object is the vertex field,
simply a list of 3d points.
Optional fields with similar structure are
vertex_parameters : u,v,w texture coordinates (parameters)
vertex_normals : a normal for each vertex, used for smooth shading
vertex_colors : a r,g,b color value for each vertex
for the Shell and ShellIndexed primitives the faces field describes the
list of faces (or the individual polygons).
the format for a face is
0: vertexcnt of face
1..n: vertex number, (starting with 0)
All face are now concatenated together.
.E.g a tringle face using vertex 0,1,2 would be stored as
3 0 1 2
.
A face with vertex cnt of 2 describes a single edge,
A face with vertex cnt 0 or 1 is ignored,
but all vertics still can be made visible by using the "Vertices" Renderstyle.
A face can have following faces with a negative vertexcnt, this indicates a hole face.
If such a file is imported you need to call "Tools->Triangulate" to display the object
properly.
For faces the optional fields
face_normal : a normal for each face, used for flat shading
face_color : a r,g,b color value for each face
(vertex colors have precedence if enabled)
Example of cube, with a color assigned to each face
; 3DV Version 1.0 Object
shell {
vertex {( -0.5 -0.5 -0.5)( 0.5 -0.5 -0.5) ( -0.5 0.5 -0.5) ( 0.5 0.5 -0.5)
( -0.5 -0.5 0.5) ( 0.5 -0.5 0.5) ( -0.5 0.5 0.5) ( 0.5 0.5 0.5)}
faces {
4 0 2 3 1 ; first face
4 1 3 7 5 ; second face ...
4 5 7 6 4
4 6 2 0 4
4 2 6 7 3
4 0 1 5 4}
face_colors {( 1 1 0)( 0.5 1 0.4) ( 0 1 1) ( 1 0.647059 0)
( 0 0 0) ( 0 0 1)}}
The vertex indices in the facelist of a Shell are indexing directly into
the vertex* arrays.
For the ShellIndex object these facelist indices are refering into the
verts field.
The verts are a array of logical vertices.
The structure of a vert is
index into vertex table
index into vertex normal table
index into vertex color table
index into vertex parameter table
This level of indirection allows to have at a common xyz location verts with
different normal/parameter values.
A Mesh needs no explicit face infomation, because all face are forming a grid.
Example :
; 3DV Version 1.0 Object
mesh {
rows 10
cols 20
vertex { (x y z) ... 10*20 times }
}
The corresponding C like declaration would be
struct Point {
float x,y,z;
}
int rows=10;
iint cols=20;
Point mesh[rows*cols];
RAW fileformat
==============
each line describes a triangle with explicit coordinates
x1 y1 z1 x2 y2 z2 x3 y3 z3
GEO fileformat
==============
Header :
#of verts #of faces scalefactor(1)
Vertex table : length # of verts
x y z <== coordinate of vert i
Face table : length # of faces
facelength vertexindices for faced
Note: vertex indices in face table are starting from 1
facetn facent