From 70c8e97a69ef8806b1812b2cd0ebe831f3792cb6 Mon Sep 17 00:00:00 2001 From: "gman@google.com" Date: Tue, 1 Sep 2009 04:21:40 +0000 Subject: Update samples to use more utility functions where appropriate. A few places used pseudoRandom. That is in math.js now so they use that. Other places there is now o3djs.material.createBasicMaterial and o3djs.material.createMaterialFromFile that save 10-20 lines per sample. This CL will require new reference images. There are 2 other things I'd like to consider. #1) Changing every sample that uses shaders/texture-only.shader to use o3djs.material.createConstantMaterial or some variation. The problem with o3djs.material.createConstantMaterial is it requires you pass it a texture if you want a constant textured material. All the samples create the material first, then later add the texture. So, I could add a new o3djs.material.createTextureOnlyMaterial. At the same time that would mean changing those samples from setting stuff on 'texSampler0' to 'emissive' #2) I'd like to change the shader builder so it stops adding "Sampler" to textured materials. As it is if the material uses a color it makes the param called "diffuse" but if it's a texture it makes it "diffuseSampler". That sucks because it means the code has to do crap like var param = material.getParam('diffuse'); if (param) { // it's a color } else { param = material.getParam('diffuseSampler'); if (param) { // it's a texture. } } If we stopped that silliness we could just do var param = material.getParam('diffuse'); if (param) { if (param.isA('o3d.ParamTexture')) { // it's textured. } else { // it's not. } } Unfortunately to fix this requires changing the o3dConverter as well since it uses those conventions. Should we do this? Review URL: http://codereview.chromium.org/182024 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@25015 0039d316-1c4b-4281-b951-d872f2087c98 --- o3d/samples/vertex-shader-animation.html | 21 ++++++--------------- 1 file changed, 6 insertions(+), 15 deletions(-) (limited to 'o3d/samples/vertex-shader-animation.html') diff --git a/o3d/samples/vertex-shader-animation.html b/o3d/samples/vertex-shader-animation.html index 5cc2220..4b1092f 100644 --- a/o3d/samples/vertex-shader-animation.html +++ b/o3d/samples/vertex-shader-animation.html @@ -59,7 +59,7 @@ o3djs.require('o3djs.util'); o3djs.require('o3djs.math'); o3djs.require('o3djs.rendergraph'); o3djs.require('o3djs.primitives'); -o3djs.require('o3djs.effect'); +o3djs.require('o3djs.material'); // global variables var g_o3d; @@ -111,20 +111,11 @@ function initStep2(clientElements) { g_client.root, g_client.renderGraphRoot); - // Create and load the effect. - var effect = g_pack.createObject('Effect'); - o3djs.effect.loadEffect(effect, 'shaders/phong-vertex-anim.shader'); - - // Create a new Material for the quad. - var material = g_pack.createObject('Material'); - - // Set the material's drawList - material.drawList = g_viewInfo.performanceDrawList; - material.effect = effect; - - // Create Params on the material for all the uniform parameters needed by - // the effect. - effect.createUniformParameters(material); + // Create a material. + var material = o3djs.material.createMaterialFromFile( + g_pack, + 'shaders/phong-vertex-anim.shader', + g_viewInfo.performanceDrawList); // Set the material parameters. material.getParam('lightWorldPos').value = [-40, 100, 0]; -- cgit v1.1