当前位置: 首页 > news >正文

网站挂马解决线上职业技能培训平台

网站挂马解决,线上职业技能培训平台,wordpress如何生成rss,wordpress禁止百度转码33. Three.js案例-创建带阴影的球体与平面 实现效果 知识点 WebGLRenderer (WebGL渲染器) WebGLRenderer 是 Three.js 中用于渲染 3D 场景的核心类。它负责将场景中的对象绘制到画布上。 构造器 new THREE.WebGLRenderer(parameters)参数类型描述parametersObject可选参数…

33. Three.js案例-创建带阴影的球体与平面

实现效果

效果

知识点

WebGLRenderer (WebGL渲染器)

WebGLRenderer 是 Three.js 中用于渲染 3D 场景的核心类。它负责将场景中的对象绘制到画布上。

构造器
new THREE.WebGLRenderer(parameters)
参数类型描述
parametersObject可选参数对象,用于配置渲染器的各种属性。

常用参数:

  • antialias:布尔值,是否开启抗锯齿,默认为 false
  • alpha:布尔值,是否允许透明背景,默认为 false
  • premultipliedAlpha:布尔值,是否使用预乘 alpha,默认为 true
  • preserveDrawingBuffer:布尔值,是否保留绘图缓冲区,默认为 false
  • depth:布尔值,是否创建深度缓冲区,默认为 true
  • stencil:布尔值,是否创建模板缓冲区,默认为 true
  • logarithmicDepthBuffer:布尔值,是否使用对数深度缓冲区,默认为 false
  • powerPreference:字符串,指定 GPU 的性能偏好,可选值为 defaulthigh-performancelow-power
方法
  • setPixelRatio(value):设置设备像素比。
  • setSize(width, height, updateStyle):设置渲染器的尺寸。
  • setClearColor(color, alpha):设置渲染器的背景颜色。
  • render(scene, camera):渲染场景。

Scene (场景)

Scene 是 Three.js 中用于存储和管理所有 3D 对象的容器。

构造器
new THREE.Scene()

PerspectiveCamera (透视相机)

PerspectiveCamera 是 Three.js 中用于创建透视投影的相机。

构造器
new THREE.PerspectiveCamera(fov, aspect, near, far)
参数类型描述
fovNumber视野角度,以度为单位。
aspectNumber相机的宽高比。
nearNumber近裁剪面距离,小于该距离的对象不会被渲染。
farNumber远裁剪面距离,大于该距离的对象不会被渲染。
方法
  • position.set(x, y, z):设置相机的位置。
  • lookAt(vector):使相机看向指定的点。

SpotLight (聚光灯)

SpotLight 是 Three.js 中用于创建聚光灯的光源。

构造器
new THREE.SpotLight(color, intensity, distance, angle, penumbra, decay)
参数类型描述
colorColor光源的颜色。
intensityNumber光源的强度,默认为 1。
distanceNumber光源的最大影响距离,默认为 0(无限远)。
angleNumber光源的光照角度,默认为 Math.PI/3。
penumbraNumber光源的半影区域,默认为 0。
decayNumber光源的衰减,默认为 1。
属性
  • castShadow:布尔值,是否投射阴影,默认为 false

Mesh (网格)

Mesh 是 Three.js 中用于创建 3D 对象的基本类。

构造器
new THREE.Mesh(geometry, material)
参数类型描述
geometryGeometry网格的几何体。
materialMaterial网格的材质。
属性
  • castShadow:布尔值,是否投射阴影,默认为 false
  • receiveShadow:布尔值,是否接收阴影,默认为 false

SphereBufferGeometry (球体几何体)

SphereBufferGeometry 是 Three.js 中用于创建球体几何体的类。

构造器
new THREE.SphereBufferGeometry(radius, widthSegments, heightSegments, phiStart, phiLength, thetaStart, thetaLength)
参数类型描述
radiusNumber球体的半径。
widthSegmentsNumber经度方向上的分段数,默认为 8。
heightSegmentsNumber纬度方向上的分段数,默认为 6。
phiStartNumber经度起始角度,默认为 0。
phiLengthNumber经度范围,默认为 2 * Math.PI。
thetaStartNumber纬度起始角度,默认为 0。
thetaLengthNumber纬度范围,默认为 Math.PI。

PlaneGeometry (平面几何体)

PlaneGeometry 是 Three.js 中用于创建平面几何体的类。

构造器
new THREE.PlaneGeometry(width, height, widthSegments, heightSegments)
参数类型描述
widthNumber平面的宽度。
heightNumber平面的高度。
widthSegmentsNumber宽度方向上的分段数,默认为 1。
heightSegmentsNumber高度方向上的分段数,默认为 1。

MeshNormalMaterial (网格法线材质)

MeshNormalMaterial 是 Three.js 中用于显示网格法线的材质。

构造器
new THREE.MeshNormalMaterial(parameters)
参数类型描述
parametersObject可选参数对象,用于配置材质的各种属性。

常用参数:

  • wireframe:布尔值,是否以线框模式显示,默认为 false
  • transparent:布尔值,是否允许透明,默认为 false

MeshStandardMaterial (网格标准材质)

MeshStandardMaterial 是 Three.js 中用于创建物理上准确的标准材质。

构造器
new THREE.MeshStandardMaterial(parameters)
参数类型描述
parametersObject可选参数对象,用于配置材质的各种属性。

常用参数:

  • color:颜色值,材质的颜色。
  • metalness:浮点数,金属度,默认为 0。
  • roughness:浮点数,粗糙度,默认为 1。

Vector3 (三维向量)

Vector3 是 Three.js 中用于表示三维向量的类。

构造器
new THREE.Vector3(x, y, z)
参数类型描述
xNumber向量的 x 分量。
yNumber向量的 y 分量。
zNumber向量的 z 分量。
方法
  • set(x, y, z):设置向量的各个分量。
  • multiplyScalar(scalar):将向量的各个分量乘以一个标量。

ShadowMap (阴影映射)

ShadowMap 是 Three.js 中用于启用和配置阴影映射的功能。

属性
  • enabled:布尔值,是否启用阴影映射,默认为 false

代码

<!DOCTYPE html>
<html>
<head><meta charset="UTF-8"><script src="ThreeJS/three.js"></script><script src="ThreeJS/jquery.js"></script>
</head>
<body>
<div id="myContainer"></div>
<script>// 创建渲染器var myRenderer = new THREE.WebGLRenderer();myRenderer.setPixelRatio(window.devicePixelRatio);myRenderer.setSize(480, 320);myRenderer.setClearColor('white', 1);// 创建场景var myScene = new THREE.Scene();// 创建相机var myCamera = new THREE.PerspectiveCamera(45, 480 / 320, 0.1, 1000);myCamera.position.set(4, 4, 2);myCamera.position.multiplyScalar(2);myCamera.lookAt(new THREE.Vector3(0, 0, 0));// 启用阴影映射myRenderer.shadowMap.enabled = true;// 添加渲染器到容器$("#myContainer").append(myRenderer.domElement);// 创建聚光灯var mySpotLight = new THREE.SpotLight('white');mySpotLight.position.set(-3, 46, -1);mySpotLight.distance = 80;mySpotLight.angle = Math.PI / 50;mySpotLight.castShadow = true;myScene.add(mySpotLight);// 创建球体var mySphereGeometry = new THREE.SphereBufferGeometry(2, 36, 36);var mySphereMaterial = new THREE.MeshNormalMaterial({wireframe: true,transparent: true});var mySphereMesh = new THREE.Mesh(mySphereGeometry, mySphereMaterial);mySphereMesh.position.set(0, 2.5, 0);mySphereMesh.castShadow = true;myScene.add(mySphereMesh);// 创建平面var myPlaneGeometry = new THREE.PlaneGeometry(120, 120, 1, 1);var myPlaneMaterial = new THREE.MeshStandardMaterial({color: 'white'});var myPlaneMesh = new THREE.Mesh(myPlaneGeometry, myPlaneMaterial);myPlaneMesh.rotateX(-Math.PI / 2);myPlaneMesh.rotateZ(-Math.PI / 7);myPlaneMesh.position.set(0, -3.5, 0);myPlaneMesh.receiveShadow = true;myScene.add(myPlaneMesh);// 渲染场景myRenderer.render(myScene, myCamera);
</script>
</body>
</html>

演示链接

示例链接

http://www.tj-hxxt.cn/news/34884.html

相关文章:

  • 云梦做网站品牌推广软文200字
  • 国外网站 设计中国十大外贸平台
  • 湖北专业的网瘾戒除学校排名靠前百家号关键词排名优化
  • 页面设计的网站广州百度关键词推广
  • 怎么查看网站日记国际重大新闻事件10条
  • wordpress插件安装失败seo是什么意思怎么解决
  • 网站风格复制搭建一个网站需要多少钱?
  • 河南省网站建设百度推广代理
  • php网站建设培训网站的推广方式有哪些
  • 京东的网站建设介绍山西优化公司
  • dw属于什么的网页制作工具谷歌seo零基础教程
  • 做电商网站需要的证百度推广后台登陆
  • 做网站的前端技术网站优化查询代码
  • 网站主题旁边的图标怎么做的优质外链
  • 如何做外贸品牌网站如何给自己的公司建网站
  • seo网站权重个人怎么创建网站
  • 做信息类网站有哪些最近国际新闻大事
  • 内容网站 如何做采集中国最好的营销策划公司
  • 如何根据网址攻击网站宁波seo怎么做推广渠道
  • 南京做网站哪家好在线网站分析工具
  • 网站建设网站维护关键词seo优化软件
  • 在网站制作意见征集是怎么做的最新的疫情信息
  • 网站建设常识广告营销公司
  • 谈谈对seo的理解标题关键词优化技巧
  • 深圳市做物流网站网站关键词快速排名优化
  • 用户界面设计报告seo网络贸易网站推广
  • 如何做网站诊断推广软文案例
  • 医院网站制作开通网站需要多少钱
  • 营销型网站定做电商运营自学网站
  • 搭建动态网站实体店引流推广方法