【小沐学GIS】基于Lua绘制三维数字地球Earth(Lua、OpenGL、GIS)

🍺三维数字地球GIS系列相关文章(C++)🍺:
1【小沐学GIS】基于C++绘制三维数字地球Earth(OpenGL、glfw、glut)第一期
2【小沐学GIS】基于C++绘制三维数字地球Earth(OpenGL、glfw、glut)第二期
3【小沐学GIS】基于C++绘制三维数字地球Earth(OpenGL、glfw、glut)第三期
4【小沐学GIS】基于C++绘制三维数字地球Earth(QT、OpenGL)第四期
5【小沐学GIS】基于C++绘制三维数字地球Earth(QT、OpenGL、Satellite、卫星轨道模拟)第五期
6【小沐学GIS】基于C++绘制三维数字地球Earth(OpenG、SolarSystem、太阳系模拟)第六期
7【小沐学GIS】基于C++绘制三维数字地球Earth(OpenGL、OpenSceneGraph / OSG)第七期
8【小沐学GIS】基于C++绘制三维数字地球Earth(OpenGL、二维瓦片地图)第八期
9【小沐学GIS】基于C++绘制三维数字地球Earth(OpenGL、三维瓦片地球)第九期
10【小沐学GIS】基于C++绘制三维数字地球Earth(osgEarth、三维瓦片地球)第十期
11【小沐学GIS】基于C++绘制OpenStreetMap地图矢量数据(QT、OpenGL、OSM、Mapbox)第十一期
12【小沐学GIS】基于C++绘制地形DEM(OpenGL、Terrain、TIFF、hgt)第十二期
🍺GIS系列相关辅助工具如下🍺:
1【小沐杂货铺】GIS瓦片地图下载工具(高德/天地图/谷歌/必应/OSM/MapBox/ArcGIS)
2【小沐杂货铺】GIS高程地形tif文件转obj/gltf三维模型工具(geotiff to obj/gltf、3d模型处理)
🍺三维数字地球GIS系列相关文章(其他语言)🍺:
1【小沐学GIS】基于C#绘制三维数字地球Earth(C#、OpenGL)
2【小沐学GIS】基于Python绘制三维数字地球Earth(Python、OpenGL、地球/太阳系/卫星)
3【小沐学GIS】基于Android绘制三维数字地球Earth(Android、OpenGL)
4【小沐学GIS】基于Golang绘制三维数字地球Earth(Go、OpenGL)
5【小沐学GIS】基于Rust绘制三维数字地球Earth(Rust、OpenGL)
6【小沐学GIS】基于Lua绘制三维数字地球Earth(Lua、OpenGL)
7【小沐学GIS】基于Java绘制三维数字地球Earth(Java、OpenGL)
8【小沐学GIS】基于Unity3d绘制三维数字地球Earth(Unity3d、OpenGL)
9【小沐学GIS】基于Vulkan绘制三维数字地球Earth(Vulkan)
10【小沐学GIS】基于Godot绘制三维数字地球Earth(Godot)
11【小沐学GIS】基于VTK绘制三维数字地球Earth(VTK)
12【小沐学GIS】基于Babylon.JS绘制三维数字地球Earth(Babylon.JS、vue、react)
🍺三维数字地球WebGIS系列相关文章(Three.JS)🍺:
1【小沐学WebGIS】基于Three.JS绘制三维数字地球Earth(WebGL、vue、react)
2【小沐学WebGIS】基于Three.JS绘制三维太阳系Solar System(three.js、WebGL)第一期
3【小沐学WebGIS】基于Three.JS绘制三维太阳系Solar System(three.js、WebGL)第二期
4【小沐学WebGIS】基于Three.JS绘制卫星模拟Satellite Tracker(three.js、vue、react、卫星)
5【小沐学WebGIS】基于Three.JS绘制OpenStreetMap地图矢量数据(WebGL、OSM、2d/3d)
6【小沐学WebGIS】基于Three.JS绘制地形DEM(Three.JS、WebGL、TIFF)
7【小沐学WebGIS】基于Three.JS绘制瓦片地图(Three.JS、WebGL、Mapbox)
8【小沐学WebGIS】基于Three.JS绘制飞行轨迹Flight Tracker(Three.JS/ vue / react / WebGL)
9【小沐学WebGIS】基于WebGL绘制三维数字地球Earth(WebGL、地球/卫星/航迹)
10【小沐学WebGIS】基于WebGL绘制二三维地图地球晨昏效果(Three.JS/ vue / react )
11【小沐学WebGIS】基于Three.JS绘制三维城市建筑(City / vue / react )
🍺Three.JS系列相关文章如下🍺:
1【小沐杂货铺】基于Three.JS构建IFC模型浏览器(WebGL、CAD、Revit、IFC)
2【小沐杂货铺】基于Three.JS绘制汽车展示Car(WebGL、vue、react、autoshow)第1期
3【小沐杂货铺】基于Three.JS绘制汽车展示Car(WebGL、vue、react、autoshow)第2期
4【小沐杂货铺】基于Three.JS绘制云图/热力图/CAE物理场渲染(Three.JS、WebGL、CAE、heatmap)
5【小沐杂货铺】基于Three.js渲染三维风力发电机(WebGL、vue、react、WindTurbine)
6【小沐杂货铺】基于Three.js渲染三维船舶航行仿真(WebGL、vue、react、ship/boat/vessel)
7【小沐杂货铺】基于Three.js绘制三维管道Pipe(WebGL、vue、react)
8【小沐杂货铺】基于Three.js绘制三维机械臂RobotArm(WebGL、vue、react)
9【小沐杂货铺】基于Three.JS绘制三维海面/海洋/水面(WebGL / vue / react )
10【小沐杂货铺】基于Three.JS构建三维虚拟教学实践课程(WebGL / vue / react )
11【小沐杂货铺】基于Three.JS绘制URDF机器人模型(WebGL / vue / react )
12【小沐杂货铺】基于Three.JS绘制动物世界Animal(WebGL / vue / react )
13【小沐杂货铺】基于Three.js渲染三维飞行仿真Flight Simulation(WebGL / vue / react )
14【小沐杂货铺】基于Three.js渲染三维无人机Drone(WebGL / vue / react )
🍺三维数字地球WebGIS系列相关文章(Cesium.JS)🍺:
1【小沐学WebGIS】基于Cesium.JS绘制卫星轨迹Satellite Tracker(Cesium、vue、react)第1期
2【小沐学WebGIS】基于Cesium.JS绘制卫星轨迹Satellite Tracker(Cesium、vue、react)第2期
3【小沐学WebGIS】基于Cesium.JS绘制飞行轨迹Flight Tracker(Cesium/ vue / react / czml / GPX)
4【小沐学WebGIS】基于Cesium.JS绘制雷达波束/几何体/传感器Sensor(Cesium / vue / react )
5【小沐学WebGIS】基于Cesium.JS桌面端适配地球卫星App(Cesium.js+QT/C#/MFC/Python/Electron)
6【小沐学WebGIS】基于Cesium.JS绘制火箭发射Rocket(Cesium、vue、react)
7【小沐学WebGIS】基于Cesium.JS与TacView ACMI联动仿真通信(Cesium、vue、react)
🍺AI系列相关文章🍺:
1【小沐学AI】基于AI大模型开发MCP Server服务(Cesium.JS、Three.JS、Blender)

1、简介

1.1 Lua简介

https://www.lua.org/
Lua 是一种轻量小巧的脚本语言,用标准C语言编写并以源代码形式开放, 其设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能。
在这里插入图片描述

Lua 是巴西里约热内卢天主教大学(Pontifical Catholic University of Rio de Janeiro)里的一个研究小组于 1993 年开发的,该小组成员有:Roberto Ierusalimschy、Waldemar Celes 和 Luiz Henrique de Figueiredo。
在这里插入图片描述

while( true )
do
   print("循环将永远执行下去,爱看书的小沐!2025")
end

1.2 Luajit简介

https://luajit.org/
LuaJIT 是 Lua 编程语言的一个即时编译(JIT)实现,由 Mike Pall 开发并维护。它在保持 Lua 语言简洁、灵活特性的同时,大幅提升了执行效率,尤其在数值计算、游戏开发、嵌入式系统等对性能要求较高的场景中表现优异。

1.3 LuaRocks简介

https://luarocks.org/
Luarocks 是一个 Lua 包管理器,基于 Lua 语言开发,提供一个命令行的方式来管理 Lua 包依赖、安装第三方 Lua 包等,社区比较流行的包管理器之一,另还有一个 LuaDist,Luarocks 的包数量比 LuaDist 多。

1.4 FFI简介

**Foreign Function Interface (FFI)**是一种编程技术,允许不同编程语言之间相互调用函数。它通过匹配不同语言的语义和调用约定,使得一个语言可以调用另一个语言编写的函数或库。这种技术广泛应用于需要跨语言调用的场景中,例如将C语言的高性能库集成到Python项目中,以提高性能。

  • 跨语言调用:不同编程语言之间的函数调用,例如Python调用C或C++函数。
  • 代码复用:将现有的库或代码重用在新的项目中。
  • 性能优化:通过调用低级语言(如C)编写的高性能函数来提高应用程序的性能。
local ffi = require("ffi")
ffi.cdef[[
int printf(const char *fmt, ...);
]]
ffi.C.printf("Hello %s!", "world,爱看书的小沐!")

1.5 入门例子

绘制纯色立方体
在这里插入图片描述
绘制彩色立方体
在这里插入图片描述
绘制随机色立方体
在这里插入图片描述
绘制贴图立方体
在这里插入图片描述

2、代码测试

2.1 代码1

代码编号:C18_1_GIS_3dEarth_Lua
关键词:地球绘制,纹理贴图,stb_image, glfw, luajit, ffi
在这里插入图片描述
在这里插入图片描述

结语

如果您觉得这些文字有一点点用处,请给作者点个赞;╮( ̄▽ ̄)╭
如果您有技术问题探讨,评论处留言。//(ㄒoㄒ)//
谢谢各位童鞋们啦( ´ ▽ ` )ノ ( ´ ▽ `` )っ!
更多精彩文章详见微信公众号:爱阅读的小沐

如需技术探讨 / 软件定制 / 代码分享,请加文章末尾的微信公众号或QQ!
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值