码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • three.js入门 —— 实现第一个3D案例


    前言:

            three.js入门,根据文档实现第一个3D案例

    效果图:

    代码实现:

    1. const scene = new THREE.Scene();
    2. //创建一个长方体几何对象Geometry
    3. const geometry = new THREE.BoxGeometry(100, 100, 100);
    4. //创建一个网络基础材质的材质对象Material (基础网络材质不会收到光照影响)
    5. const material = new THREE.MeshBasicMaterial({
    6. color: 0xff0000, //设置材质颜色
    7. transparent: true, //开启通明
    8. opacity: 0.5,
    9. });
    10. //测试--更换材质 -> 漫反射网络材质MeshLambertMaterial
    11. // const material = new THREE.MeshLambertMaterial();
    12. //创建网络模型 ---- 两个参数分别为“几何体”,“材质”
    13. const mesh = new THREE.Mesh(geometry, material);
    14. //定义网络模型在三维场景中的位置
    15. mesh.position.set(0, 0, 0);
    16. //辅助观察坐标系
    17. const axeHelper = new THREE.AxesHelper(150);
    18. scene.add(axeHelper);
    19. //将网络模型添加至三维场景中
    20. scene.add(mesh);
    21. //定义相机渲染输出的画布尺寸
    22. const width = 800;
    23. const height = 500;
    24. //创建一个透视摄影相机
    25. const camera = new THREE.PerspectiveCamera(30, width / height, 1, 3000);
    26. //定义相机的位置
    27. camera.position.set(300, 300, 300);
    28. //相机观察的目标位置 ---- 可以是坐标点,也可以是指定物体的位置
    29. camera.lookAt(mesh.position);
    30. //创建光源 光源颜色和强度
    31. // const pointLight = new THREE.SpotLight(0xeeeeee, 1,0,0);
    32. // //光源位置
    33. // pointLight.position.set(300, 0, 0);
    34. // //添加光源至三维
    35. // scene.add(pointLight);
    36. //创建渲染器对象
    37. const renderer = new THREE.WebGLRenderer();
    38. //设置画布尺寸
    39. renderer.setSize(width, height);
    40. //渲染器渲染方法 生成一个画布并把三维场景呈现在画布上
    41. renderer.render(scene, camera);
    42. //renderer.domElement获取到方法render()生成的画布
    43. document.body.appendChild(renderer.domElement);

     

  • 相关阅读:
    一文搞懂nginx的反向代理 负载均衡
    spring boot网上眼镜商场毕业设计-附源码241659
    基于 SPI 的增强式插件框架设计
    spring security 安全框架改造统一登录oauth2.0d方式
    高速,低延,任意频丨庚顿新一代实时数据库鼎力支撑电力装备服务数字化
    linux内核分析:线程和进程创建,内存管理
    ctfshow-web-web15 Fishman
    java划分每个月的周数及其每周的开始时间和结束时间
    [hadoop全分布部署]虚拟机Hadoop集群交换 SSH 密钥与验证SSh无密码登录
    vue前端开发中,通过vue.config.js配置和nginx配置,实现多个入口文件的实现方法
  • 原文地址:https://blog.csdn.net/m0_73334325/article/details/133773085
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号