clickbox
Background { skyColor 50 10 10 }
Viewpoint { position 0 0 1 }
EXTERNPROTO ClickBox [
exposedField SFVec2f translation
exposedField SFVec2f font_translation
exposedField SFVec2f size
exposedField MFString string
exposedField MFString url
exposedField SFBool filled
field SFFloat fontsize
field SFVec2f rectangle_size
eventOut SFInt32 choice_changed
eventOut SFTime touchTime_changed
eventOut SFBool touchSwitch
]
"shader-layer.wrl#ClickBox"
EXTERNPROTO SceneRender [
field SFInt32 width
field SFInt32 height
exposedField SFNode vshader
exposedField MFString pshader
eventIn MFString scene
]
"shader-scenerender.wrl#SceneRender"
# ==================== Misc ====================== #
DEF WorldInfo WorldInfo {
title "VRML NPR Postprocessor 1.0"
info [
"VRML NPR Postprocessor 1.0",
"S.Yin Visual Design Project",
]
}
DEF Background Background {
skyColor .2 .2 .2
}
DEF Navigation NavigationInfo {
headlight FALSE
type "ANY"
}
DEF Viewpoint Viewpoint {
position 2 1.9 -1
description "default"
}
# ================ Render Node =============== #
DEF scene SceneRender {
width 1024
height 768
##pshader "local/shader/general.phl"
pshader "local/shader/toon2.phl"
##pshader "phl-toon2.vr"
}
DEF shader_script Script {
eventOut SFNode vshader
eventOut MFString pshader
eventOut MFString newurl
field SFNode v_general VertexShader
{
url "hlsl:
float4x4 modelViewProjectionT;
struct VS_OUTPUT
{
float4 Pos : POSITION;
float2 Tex : TEXCOORD0;
};
VS_OUTPUT main (
float4 Pos : POSITION,
float3 Norm : NORMAL,
float2 Tex : TEXCOORD0
)
{
VS_OUTPUT Out;
Out.Pos = mul( Pos, modelViewProjectionT );
Out.Tex = float2( Tex.x, 1.0 - Tex.y ); // Y FLIP
return Out;
}
"
}
field MFString p_general "local/shader/general.phl"
field MFString p_toon "local/shader/toon.phl"
field MFString p_toon2 "local/shader/toon2.phl"
eventIn SFTime reset_touchTime
eventIn SFTime toon_touchTime
eventIn SFTime storyboard_touchTime
eventIn MFString scene_changed
url "javascript:
function initialize(v, t) {
Browser.setHeadlight(true);
Browser.showConsole(false);
Browser.setOption('autoMipMap', 'TRUE');
Browser.setOption('mipmap', 'TRUE');
Browser.setOption('mipMapLodBias', '0.0');
Browser.setOption('antiAliasing', 'TRUE');
vshader = v_general;
//newurl = 'logo.wrl';
newurl = 'shader-camera.wrl';
}
function reset_touchTime(v, t) {
Browser.setOption('mipmap', 'FALSE');
vshader = v_general;
pshader = p_general;
}
function toon_touchTime(v, t) {
Browser.setOption('mipmap', 'TRUE');
Browser.setOption('mipMapLodBias', '3.0');
vshader = v_general;
pshader = p_toon;
}
function storyboard_touchTime(v, t) {
Browser.setOption('mipmap', 'FALSE');
vshader = v_general;
pshader = p_toon2;
}
function scene_changed(v, t) {
newurl = new MFString(v, 'shader-valid.wrl');
}
"
}
ROUTE shader_script.vshader TO scene.vshader
ROUTE shader_script.pshader TO scene.pshader
ROUTE shader_script.newurl TO scene.scene
# =================== Menu =================== #
DEF Reset ClickBox {
translation 0 0
size .1 .07
rectangle_size 1.5 .5
font_translation -.45 -.14
fontsize 0.4
string "Reset"
}
DEF Toon ClickBox {
translation .08 0
size .1 .07
rectangle_size 1.5 .5
font_translation -.41 -.14
fontsize 0.4
string "Toon"
}
DEF StoryBoard ClickBox {
translation .16 0
size .1 .07
rectangle_size 1.5 .5
font_translation -.41 -.14
fontsize 0.4
string "Story"
}
ROUTE Reset.touchTime_changed TO shader_script.reset_touchTime
ROUTE Toon.touchTime_changed TO shader_script.toon_touchTime
ROUTE StoryBoard.touchTime_changed TO shader_script.storyboard_touchTime
(C) A. Eliëns
2/9/2007
You may not copy or print any of this material without explicit permission of the author or the publisher.
In case of other copyright issues, contact the author.