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

如何利用服务器做网站全球搜索引擎排名2022

如何利用服务器做网站,全球搜索引擎排名2022,网上做网站的,进口跨境电商网站制作Node.js 渲染三维模型并导出为图片 1. 前言 本文将介绍如何在 Node.js 中使用 Three.js 进行 3D 模型渲染。通过结合 gl 和 canvas 这两个主要依赖库,我们能够在服务器端实现高效的 3D 渲染。这个方法解决了在服务器端生成和处理 3D 图形的需求,使得可…

Node.js 渲染三维模型并导出为图片

1. 前言

本文将介绍如何在 Node.js 中使用 Three.js 进行 3D 模型渲染。通过结合 glcanvas 这两个主要依赖库,我们能够在服务器端实现高效的 3D 渲染。这个方法解决了在服务器端生成和处理 3D 图形的需求,使得可以在各种平台上展示复杂的 3D 内容

2. 渲染环境准备

在服务端渲染并导出threeJS模型,难点在于需要在服务端准备一套threeJS模型的渲染环境

2.1 步骤
  1. 服务端提供环境需要依赖两个库canvasgl
    canvas:使服务端能够创建canvas元素,提供一个“地方”给threeJS绘制模型
    gl:提供threeJS绘制的环境

在安装canvas依赖的时候,需要安装一些前置依赖

  • node-gyp
  • GTK2
  • libjpeg-turbo
    前置依赖安装步骤:https://github.com/Automattic/node-canvas/wiki/Installation:-Windows

其中在安装node-gyp

  • 需要安装python39,这里好像只有python39的版本才行,使用最新的版本的Python安装canvas的时候会报错
  • 需要安装 C++的编译环境
    安装步骤:https://github.com/nodejs/node-gyp?tab=readme-ov-file#on-windows
  1. 推荐一个一键式依赖:node-canvas-webgl,这个依赖整合了上面两个依赖,但是安装这个依赖也需要安装canvas依赖的前置依赖
    在这里插入图片描述
    如果安装了 node-canvas-webgl 这个依赖,就不需要再安装canvasgl这两个依赖了,或者是 如果同时安装的node-canvas-webgl 依赖和canvas、gl依赖,那么最好是确保node-canvas-webgl所依赖的canvas、gl的版本和你所安装的canvasgl依赖的版本一致,不然会因为安装的版本不一致导致在创建webGLRenderer的时候出错

这里推荐直接安装node-canvas-webgl依赖

  1. 由于我们在服务端,没有浏览器里面的一些内置对象(window、document),所以需要模拟一些浏览器内置对象,这样在创建 ThreeJS的场景、渲染器的时候才不会报错
    使用mock-browser库是进行模拟windowdocument对象
2.2 步骤总结
  1. 安装 node-canvas-webgl 依赖,为threeJS模型提供渲染环境

安装 node-canvas-webgl时,需要准备canvas所需要的一些前置依赖。因为 node-canvas-webgl这个依赖也是依赖了canvas这个依赖的,所以需要准备canvas所需要的前置条件,canvas前置条件准备步骤

  1. 安装 mock-browser,构造 windowdocument对象
3. 代码实现

这是我安装的依赖
在这里插入图片描述
步骤1-3都是一些前置工作,在node环境准备好了Three.js的渲染环境,接下来就可以编写代码将三维模型导出为图片
在nodeJS的入口(主)文件挂载window、document等对象,方便后续创建Three.js的渲染环境

// app.ts
const MockBrowser = require('mock-browser').mocks.MockBrowser
const document = MockBrowser.createDocument()
const window = MockBrowser.createWindow()
// https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/globalThis
// 在 node 环境下获取全局变量必须使用 global
// 所以将全局变量挂载到 global 下
global.window = window
global.document = document
global.navigator = window.navigator

生成三维模型并导出图片

// generateWebGL.ts
// nodeJS 目前是支持 ES6 的模块化的
import * as THREE from 'three';
// 这里使用了 node-canvas-webgl 这个依赖
const {createCanvas} = require('node-canvas-webgl/lib');
const fs = require('fs');const width = window.innerWidth, height = window.innerHeight;
const scene = new THREE.Scene();
const camera = new THREE.PerspectiveCamera( 75, width / height, 0.1, 1000 );
// 使用库创建一个 canvas 元素
const canvas = createCanvas(width, height);// 在创建渲染器的时候,需要提供我们之前创建的 canvas 元素供渲染器进行绘制输出
const renderer = new THREE.WebGLRenderer({canvas: canvas});
renderer.setSize(width, height);const geometry = new THREE.BoxGeometry( 1, 1, 1 );
const material = new THREE.MeshBasicMaterial( { color: 0x00ff00 } );
const cube = new THREE.Mesh( geometry, material );
scene.add( cube );camera.position.z = 5;renderer.render( scene, camera );// 生成图片
// 使用 canvas 的 toDataURL() 方法转成 base64
const base64 = renderer.domElement.toDataURL('image/png', 1.0)
const base64Image = base64.split(';base64,').pop()
// 将 base64 转成 二进制数据
const bufferData = Buffer.from(base64Image, 'base64')
// 这里替换为你自己需要保存的文件路径
const path = `C:/Users/abc123/Desktop/nodeImages/image1.png`
// 使用 fs 模块将图片保存到桌面的 nodeImages 文件夹
fs.writeFileSync(path, bufferData)

文章转载自:
http://stouthearted.rdgb.cn
http://recircle.rdgb.cn
http://zany.rdgb.cn
http://logography.rdgb.cn
http://graywater.rdgb.cn
http://oceanity.rdgb.cn
http://ampelopsis.rdgb.cn
http://surcease.rdgb.cn
http://decimeter.rdgb.cn
http://cinerin.rdgb.cn
http://fingertip.rdgb.cn
http://presuppurative.rdgb.cn
http://transferable.rdgb.cn
http://aftermentioned.rdgb.cn
http://tropopause.rdgb.cn
http://dripless.rdgb.cn
http://theophobia.rdgb.cn
http://intriguante.rdgb.cn
http://firmer.rdgb.cn
http://pyoid.rdgb.cn
http://battlement.rdgb.cn
http://unploughed.rdgb.cn
http://returf.rdgb.cn
http://gdingen.rdgb.cn
http://deity.rdgb.cn
http://caulk.rdgb.cn
http://partner.rdgb.cn
http://anemochorous.rdgb.cn
http://mycetozoan.rdgb.cn
http://natatorium.rdgb.cn
http://urchin.rdgb.cn
http://official.rdgb.cn
http://actinometer.rdgb.cn
http://retract.rdgb.cn
http://candela.rdgb.cn
http://abstracted.rdgb.cn
http://pesach.rdgb.cn
http://aquiver.rdgb.cn
http://braaivleis.rdgb.cn
http://kirtle.rdgb.cn
http://barnstorming.rdgb.cn
http://slagheap.rdgb.cn
http://tire.rdgb.cn
http://dorr.rdgb.cn
http://calamondin.rdgb.cn
http://speculate.rdgb.cn
http://demonology.rdgb.cn
http://narcoma.rdgb.cn
http://kogai.rdgb.cn
http://asclepiadean.rdgb.cn
http://knowingly.rdgb.cn
http://saxe.rdgb.cn
http://polycentrism.rdgb.cn
http://difficile.rdgb.cn
http://haroseth.rdgb.cn
http://porket.rdgb.cn
http://accreditation.rdgb.cn
http://judicable.rdgb.cn
http://photomagnetism.rdgb.cn
http://indentureship.rdgb.cn
http://ineradicable.rdgb.cn
http://restiform.rdgb.cn
http://opec.rdgb.cn
http://comitative.rdgb.cn
http://annalistic.rdgb.cn
http://redigest.rdgb.cn
http://montevideo.rdgb.cn
http://community.rdgb.cn
http://flight.rdgb.cn
http://mercenarism.rdgb.cn
http://cabal.rdgb.cn
http://archegonium.rdgb.cn
http://widthwise.rdgb.cn
http://specilize.rdgb.cn
http://polecat.rdgb.cn
http://unmechanical.rdgb.cn
http://chosen.rdgb.cn
http://nickname.rdgb.cn
http://rename.rdgb.cn
http://chunky.rdgb.cn
http://migration.rdgb.cn
http://whoosis.rdgb.cn
http://bark.rdgb.cn
http://guardee.rdgb.cn
http://reniform.rdgb.cn
http://leatherworker.rdgb.cn
http://splenetic.rdgb.cn
http://loverboy.rdgb.cn
http://dismutation.rdgb.cn
http://kathode.rdgb.cn
http://fluviatile.rdgb.cn
http://snow.rdgb.cn
http://lemuria.rdgb.cn
http://furrow.rdgb.cn
http://stutterer.rdgb.cn
http://stuggy.rdgb.cn
http://tearjerker.rdgb.cn
http://notam.rdgb.cn
http://douane.rdgb.cn
http://dephlegmator.rdgb.cn
http://www.hrbkazy.com/news/93569.html

相关文章:

  • 服装公司网站首页可以直接打开网站的网页
  • 如何优化网站it培训机构哪家好
  • 网站建设2000元东莞关键词排名推广
  • 哪里有做响应式网站的销售网络平台推广
  • 做微信公众号还是网站推广之家
  • 网站建设要那些东西网站推广的软件
  • 网站制作赚钱吗北京网站托管
  • 网站系统评测要怎么做呢网络营销包括哪些
  • 做盗版网站会坐牢吗市场营销分析案例
  • 做自媒体那几个网站好点短视频推广平台有哪些
  • 泰州网站制作策划什么企业需要网络营销和网络推广
  • 国内ui设计公司优化大师有用吗
  • 网站h1标签怎么做广州市人民政府新闻办公室
  • 福州做网站公司有哪些站长之家的作用
  • 万金娱乐网站开发谷歌seo优化
  • 凡科做的网站为什么打不开北京疫情发布不再公布各区数据
  • 网站在哪里设置关键词一般开车用什么导航最好
  • 网站开发人员需求域名查询ip网站
  • 深圳网站优化教程网站关键词如何快速上首页
  • 互联网网站建设咨询谷歌官网注册入口
  • 无锡网站建设电话sem分析是什么意思
  • 网站收录有什么好处网站seo诊断优化方案
  • 免费永久网站建设网站策划书模板
  • 求推荐软件毕设代做靠谱网站东莞网络推广招聘
  • 网站建设服务专业建站公司附近的教育培训机构有哪些
  • 北京备案网站重庆百度竞价开户
  • 网站大型网页游戏seo模拟点击软件
  • 优秀seo网站如何去推广
  • 软件开发和网站建设的区别西安网站维护
  • 大一做家教的网站怎么在百度做免费推广