light demo

lightmaterial.html

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="utf-8" />
        <title>Light&Material</title>
        <style type="text/css">
            #scr{
                width: 300px;
                height: 300px;
                margin: 20px;
                border:2px solid black;
            }
            #wor{
                width: 800px;
                height: 800px;
                margin: 20px;
                border:2px solid black;
            }
            #com{
                width: 500px;
                height:500px;
                margin: 10px;
                border:2px solid black;
            }
            
        </style>
        <script src="cuon-utils.js"></script>
        <script src="webgl-debug.js"></script>
        <script src="webgl-utils.js"></script>
        <script src="three.js"></script>
        <script src="OrbitControls.js"></script>
        <script src="spin.js"></script>
        <script src="ThreeBSP.js"></script>
        <script src="minMatrix.js"></script>
        <script src="reshape.js"></script>
        <script src="three.min.js"></script>
        <script src="OBJLoader.js"></script>
        <script src="OrbitControls.js"></script>
        <script src="stats.min.js"></script>
        <script src="dat.gui.min.js"></script>
        <!-- <script id="vs" type="x-shader/x-vertex">
            attribute vec3 position;
            uniform mat4 mvpMatrix;
             
            void main(void){
                gl_Position = mvpMatrix * vec4(position, 1.0);
            }
        </script>    
        <script id="fs" type="x-shader/x-fragment">
            void main(void){
                gl_FragColor = vec4(1.0, 1.0, 1.0, 1.0);
            } 
           
        </script>-->
            
    </head>
</html>

<body onload="main()">
        
    <!-- <div id="scr">

    </div > -->

    <div id="wor">
       
    </div >

</body>

reshape.js

//************************************************************************************************** */
// //通过getElementById()方法获取canvas画布
//       // HelloPoint1.js (c) 2012 matsuda
// // Vertex shader program
// var VSHADER_SOURCE = 
// 'void main() {\n' +
// '  gl_Position = vec4(0.0, 0.0, 0.0, 1.0);\n' + // Set the vertex coordinates of the point
// '  gl_PointSize = 10.0;\n' +                    // Set the point size
// '}\n';

// // Fragment shader program
// var FSHADER_SOURCE =
// 'void main() {\n' +
// '  gl_FragColor = vec4(1.0, 0.0, 0.0, 1.0);\n' + // Set the point color
// '}\n';

// function main() {
// // Retrieve <canvas> element
// var canvas = document.getElementById('screen');

// // Get the rendering context for WebGL
// var gl = getWebGLContext(canvas);
// if (!gl) {
//   console.log('Failed to get the rendering context for WebGL');
//   return;
// }

// // Initialize shaders
// if (!initShaders(gl, VSHADER_SOURCE, FSHADER_SOURCE)) {
//   console.log('Failed to intialize shaders.');
//   return;
// }

// // Specify the color for clearing <canvas>
// //gl.clearColor(0.0, 0.0, 0.0, 1.0);

// // Clear <canvas>
// gl.clear(gl.COLOR_BUFFER_BIT);

// // Draw a point
// gl.drawArrays(gl.POINTS, 0, 1);
// }
//****************************************************************************************** */

function gasket(){
  var b=document.getElementById("scr");
  var width= b.clientWidth;
  var height= b.clientHeight;
  
  var scene=new THREE.Scene();//场景

  // //模型(几何 材质)
  // var shape=new THREE.Shape();
  // shape.arc(0,0,320,0,2*Math.PI);
  // var cicle=new THREE.Path();
  // cicle.arc(0,0,140,0,2*Math.PI);
  // shape.holes.push(cicle);
  
  var geometry = new THREE.TorusGeometry( 10, 3, 16, 100 );
  //var gasket=new THREE.ExtrudeGeometry(geometry,extrudeSettings);
  var material = new THREE.MeshBasicMaterial({ 
    color: 0x6633FF,
    transparent:true,
    opacity:1,
    shininess:20
  
    });
  var torus = new THREE.Mesh( geometry, material );
  scene.add(torus);

  // //amount圈的数量,bevelSize内径与外径宽度,bevelThickness同amount,curveSegments组成的个数
  // var extrudeSettings = { amount: 40, bevelEnabled: true, bevelSegments: 2, steps: 2, bevelSize: 1, bevelThickness: 1,curveSegments:100};
  // var gasket=new THREE.ExtrudeGeometry(shape,extrudeSettings);
  // var material=new THREE.MeshPhongMaterial({
  //     color:0x4499ff,
  //     transparent:true,
  //     opacity:1,
  //     specular:0x4499ff,//金属
  //     //specular:0x222222,//塑料

  //     shininess:20
  //   });
  // var mesh=new THREE.Mesh(gasket,material);
  // scene.add(mesh);
  // //模型(几何 材质)

  // //灯光
  // var point=new THREE.PointLight(0xdddddd);//浅灰
  // point.position.set(400,200,300);
  // scene.add(point);

  // var point1=new THREE.PointLight(0x888888);//深灰
  // point1.position.set(-400,200,300);
  // scene.add(point1);
  // //灯光

  // var ambient=new THREE.AmbientLight(0x888888);//深灰
  // scene.add(ambient);

    //  //点光源
    //    var point=new THREE.PointLight(0xffffff);
    //    point.position.set(400,200,300);//点光源位置
    //    scene.add(point);//点光源添加到场景中
    //   //环境光
    //    var ambient=new THREE.AmbientLight(0x444444);
    //    scene.add(ambient);
    //    var direction = new THREE.DirectionalLight(0xffffff);
    //    scene.add(direction);

  //照相机
  var k=20;
  var camera=new THREE.OrthographicCamera(-width/k,width/k,height/k,-height/k,1,1000);
  camera.position.set(0,0,400);
  camera.lookAt(scene.position);
  //照相机

  //渲染器设置
  var renderer=new THREE.WebGLRenderer();
  renderer.setSize(width, height);
  renderer.setClearColor(0x3d3d3d,1);//背景色,深灰
  b.appendChild(renderer.domElement);
  //渲染器设置

  //设置渲染函数
  function render(){
      renderer.render(scene,camera);
  }
  //执行渲染器

  //调用渲染函数
  render();
  //调用渲染函数

  //鼠标缩放滚转零件,轨道控制器OrbitControls
  var controls=new THREE.OrbitControls(camera);
  controls.addEventListener('change', render);

}



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Light Gui的新特性。 1图层和绘图: 支持多图层,使用与有多图层支持的处理器平台。 支持多图层的软件模拟,支持图层的alpha合并和滑动。 同时支持多种颜色格式的图层,如ragb8888模式、rgb565模式、256色调色板模式。 对每个图层,支持双缓存(double buffer)模式,内部进行了窗口剪切优化。 也支持直画(direct draw)模式,支持内存设备,两者可以配合使用。 支持图层和窗口之前的映射,支持一组窗口动态切换显示到不同大小、不同颜色格式的图层。 支持窗口旋转90度、180度、270度,无需硬件支持。 2风格支持: 支持css风格配置,代码中设置控件的类名,就可以和css配置配合使用。 支持css配置控件不同状态的背景属性,如图片、填充色;前景属性,如图片、颜色;字体属性,如大小、颜色;边框属性,如宽度、颜色、调色板位图、补白等。 支持css配置窗口的一些基本属性,如高宽,透明等。 支持皮肤特性,皮肤的属性包括图标、css配置和调色板位图。 支持多种皮肤,支持在线切换皮肤。 3window模拟器支持: 支持完整的window模拟器,使用visual studio 2005,可以独立于设备,在window环境编写界面代码。 全部由C代码编写,自带基本的C函数库,数学函数库,可以在window,嵌入式设备间无缝移植。 模拟器带来良好的调试特性,界面的相关bug,可以方便的在模拟器上调试,极大的加快软件的开发进度。 支持内存调试模式,可以方便的追踪内存越界,泄漏等问题。 4xml支持: 自带xml解释器,配置文件都使用xml编写,有很好的可读性。 实现了基于xml配置文件的多国语言支持,支持在线切换语言。 5简明易用的控件: 自带多种基本的控件,包括静态文本框、按钮、单行和多行编辑框、列表框、进度条、滚动条、图片、等等。 支持自定义控件,控件代码清晰、简明、容易编写。支持组合控件、对话框控件。配合皮肤配置,能快速实现美工效果和风格。 支持一些较复杂的控件,如文本控件、html显示、软件盘等 6良好的应用移植性 自带基本的C函数库,数学函数库等,可以方便的移植程序库和应用程序。 Light Gui的弱点: 实时性能不是Light GUI强项,不建议使用在实时性要就很高的环境。 在使用风格属性的情况下需要有系统盘的支持,用于存放配置文件和资源。 Light Gui目前是一个图形开发包,没有跨任务的窗口管理系统。 目前只有ucos(增强型,支持系统盘),linux,window平台的移植版本。 Light Gui使用的场合: 需要使用图形库快速实现自有风格的嵌入式设备,比如消费电子设备的二次开发,UI设计。 需要使用Light Gui特性的window程序设计。 Light Gui的商业模式: Light Gui是商业收费软件。 提供软件定制服务。 提供自主设计所需的源代码和库。 Light Gui 的其他特性 Light Gui 主要针对嵌入式操作系统,如嵌入式linux, uC/OS-II 等提供支持。在这些 OS 上,Light Gui 支持以多线程模式运行。其主要技术特性描述如下。 1) 硬件适配性: 可支持各种 32 位处理器架构,如 ARM、MIPS、PowerPC、Blackfin等。 支持各种灰度,彩色显示设备。 可支持各种输入设备,键盘(Keypad)、触摸屏、遥控器等等。 2) 资源消耗: Light GUI 的静态存储随配置选项的不同而不同,最少需占用 800K 静态存储空间。 Light GUI 启动后,初始占用动态存储空间最小为128k。建议系统内存为 2MB 以上。 3) 操作系统适配性: 目前支持uC/OS-II 等操作系统,也可以运行在 Linux/uClinux 操作系统之上,Light GUI自带基础的c函数库,可以方便的移植到支持frambuffer的设备上。 针对嵌入式系统的特殊支持,包括一般性的 I/O 流操作,字节序相关函数等。 4) 窗口子系统特性: 完备的任务内窗口机制和消息传递机制。 5) 图形子系统特性: 提供有增强 GDI 函数,包括光栅操作、复杂区域处理、椭圆、圆弧、多边形以及区域填充等函数。 在提供有兼容于 C99 规范的数学库平台上,还提供有高级二维绘图函数。 通过 Light GUI 的图形抽象层及图形引擎技术,我们也可以让上述高级 GDI 接口在低端显示屏上实现。 各种流行图像文件的支持,包括 Windows BMP、GIF、JPEG、PNG 等(JPEG

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值