首页 > 其他分享 >阴影画布实现例子

阴影画布实现例子

时间:2022-09-06 12:12:25浏览次数:658  
标签:canvas THREE 阴影 画布 width 例子 var new

效果图:
image

实现代码:

//创建阴影画布
//创建画布
var canvas = document.createElement('canvas');
//设置画布大小
canvas.width = 128;
canvas.height=128;
//创建一个用于在画布上绘图的环境
var context = canvas.getContext('2d');
//创建一个放射性渐变
var gradient = context.createRadialGradient(canvas.width/2,canvas.height/2,0,canvas.width/2,canvas.height/2,canvas.width/2);
//在画布渐变开始位置添加一种颜色,
gradient.addColorStop(0,'rgba(100,100,100,1)');
//在画布渐变的最后位置添加一种颜色,
gradient.addColorStop(1,'rgba(255,255,255,1)');
//填充方式就是刚才创建的渐变填充
context.fillStyle = gradient;
//实际的在画布上绘制渐变。
context.fillRect(0,0,canvas.width,canvas.height);


//阴影画布转成纹理
var texture = new THREE.Texture(canvas);
texture.needsUpdate = true;
//将阴影纹理用于材质上
var shadowmaterial = new THREE.MeshBasicMaterial({map:texture});
//创建一个平面
var shadowGeometry = new THREE.PlaneGeometry(300,300,1,1);
//平面与材质结合(创建三个网格模型,并加入到场景中)
var mesh = new THREE.Mesh(shadowGeometry,shadowmaterial);
mesh.position.y = -160;
mesh.rotation.x = -Math.PI / 2;
scene.add(mesh);



//带边框的20面体
const geometry = new THREE.IcosahedronGeometry( 150, 1 );
var materail = new THREE.MeshPhongMaterial({
    color:0xffffff,
    flatShading: true,  //定义材质是否使用平面着色进行渲染。默认值为false。
    shininess:0     //.specular高亮的程度,越高的值越闪亮。默认值为 30。
});
var wireframeMaterail = new THREE.MeshBasicMaterial({

    wireframe:true,     //wireframe将几何体渲染成线框;
    transparent:true  //transparent 定义材质是否透明
});
object = new THREE.Mesh(geometry,materail);
var object2 = new THREE.Mesh(geometry,wireframeMaterail);
object.add(object2);
object.position.y = 40;
scene.add(object);

标签:canvas,THREE,阴影,画布,width,例子,var,new
From: https://www.cnblogs.com/huangchun/p/16661311.html

相关文章

  • three.js实现鼠标拾取例子
    基本思路<script>varrenderer,scene,camera;varlight;varraycaster,//相机->鼠标的射线 mouse,//鼠标所在位置 actionObject;//选中的物体init();animation();......
  • 我写了一个 HTML 画布数据网格,所以你不必
    我写了一个HTML画布数据网格,所以你不必GlideDataGridinallitsCanvasbasedglory对于Web开发人员来说,HTML5画布是一个非常强大且未被充分利用的工具。它也......
  • CSS 阴影
    CSS阴影基本上在CSS中,我们确实有两个主要属性,我们可以使用这些属性来使用阴影来设置元素的样式,即:文字阴影盒子阴影文字阴影但是,我们只能为所有元素和其中的文本......
  • CSS 阴影
    CSS阴影基本上在CSS中,我们确实有两个主要属性,我们可以使用这些属性来使用阴影来设置元素的样式,即:文字阴影盒子阴影文字阴影但是,我们只能为所有元素和其中的文本......
  • asio使用例子
    阻塞调用#include<iostream>#include<boost/asio.hpp>#include<boost/date_time/posix_time/posix_time.hpp>usingnamespacestd;intmain(){cout<<......
  • Linux命令-按照与使用(13)为初学者介绍的 Linux tee 命令(6 个例子)
    转载地址:为初学者介绍的Linuxtee命令(6个例子)有时候,你会想手动跟踪命令的输出内容,同时又想将输出的内容写入文件,确保之后可以用来参考。如果你想寻找这相关的工具,那......
  • react-native 实现阴影效果
    github地址: https://github.com/SrBrahma/react-native-shadow-2安装: yarnaddreact-native-svgreact-native-shadow-2使用: import{Shadow}from'react-na......
  • script例子
    <!DOCTYPEhtml><htmllang="zh-Hans-CN"><head><metacharset="UTF-8"><metahttp-equiv="X-UA-Compatible"content="IE=edge,chrome=1"><metaname="rende......
  • BBTools Shadow:360°真实阴影效果PS插件
    插件安装步骤:windows版本插件安装非常简单,仅需下载后: 1)关闭photoshop应用 2)把Shadow文件拷贝至以下路径C:\ProgramFiles\Adobe\AdobePhotoshopCC2022\Required\CE......
  • 用一个例子学习层次聚类
    用一个例子学习层次聚类H分层聚类真的用的不多,如果用scikit-learn的话,语法和其他模型差别不大,除了构造函数的参数。虽然几乎所有的sklearn模型总是被当作黑匣子使用......