- 博客(130)
- 资源 (2)
- 收藏
- 关注
原创 WEBGL看完你就会了(20)---光让立体更加逼真
摘要 本文介绍了3D图形中的光照模型实现,重点分析了平行光的漫反射效果。文章首先区分了点光源、平行光和环境光三种光源类型,详细解释了漫反射的计算原理,包括入射光方向、物体表面基底色和法线向量在光照计算中的作用。通过JavaScript和WebGL代码示例,展示了如何实现平行光照射下的立方体渲染效果,其中关键步骤包括法线向量归一化、光线方向计算以及着色器中的光照公式应用。代码实现了顶点着色器中的漫反射计算,并最终将结果传递给片段着色器完成渲染。
2025-12-06 16:15:00
417
原创 WEBGL看完你就会了(19)---三维立方体
本文介绍了使用WebGL绘制立方体的方法。通过定义6个面的顶点坐标和颜色数据,利用gl.drawElements()函数优化顶点绘制,避免重复。关键点包括:1) 每个面由6个顶点组成;2) 开启深度测试(gl.enable(gl.DEPTH_TEST))处理遮挡关系;3) 使用矩阵变换设置透视和观察视角。代码实现了顶点着色器和片元着色器,通过矩阵运算将3D坐标转换为屏幕空间。最终调用gl.drawElements()绘制36个顶点组成的彩色立方体,并清除深度缓冲区确保正确渲染。
2025-08-30 15:30:00
365
原创 WEBGL看完你就会了(18)---可视范围【透视投影】
本文介绍了WebGL中实现透视投影的基本原理和代码实现。通过类比现实生活中的视觉现象(如道路两侧树木逐渐变小),解释了透视投影能模拟人眼视角的原理。文章使用cuon-matrix.js库提供的透视投影矩阵,通过设置垂直视角(fov)、宽高比、近裁剪面和远裁剪面四个参数创建投影效果。代码示例展示了如何绘制6个不同距离的彩色三角形(左右各3个),通过设置视点和投影矩阵实现近大远小的视觉效果。最终渲染结果验证了透视投影在WebGL中的正确应用。
2025-07-17 20:45:00
301
原创 WEBGL看完你就会了(17)---可视范围【正射投影】
本文摘要: WebGL的可视空间分为正射投影和透视投影两种类型。正射投影定义了一个长方体可视空间,物体大小不随距离变化;而透视投影则模拟现实视觉,近大远小。文章通过代码示例演示了正射投影的实现,包括设置视点矩阵和投影矩阵,并利用键盘交互控制视点移动和可视空间调整。当物体超出可视空间范围时会被裁剪,解释了为何三角形旋转到边缘时部分消失的现象。实验展示了通过调整观察参数(g_EyeX/g_far)来动态改变可视范围的效果。
2025-07-10 21:15:00
304
原创 WEBGL看完你就会了(16)---进入三维世界
摘要:本文介绍了三维空间中的视角变换原理,通过WebGL实现了一个简单的三维场景视图控制。文章首先解释了视点、视线、目标点和上方向等基本概念,阐述了视图矩阵的作用。采用"观察者移动"与"物体移动"的等价性原理,推导了顶点坐标变换公式,并提供了两种着色器代码实现方案。最后通过示例代码展示了如何创建三维三角形场景,并实现键盘控制观察者X坐标移动的功能,演示了视角变换的实际应用效果。
2025-07-04 20:30:00
300
原创 WEBGL看完你就会了(9)---平移矩阵
虽然之前已经用数学表达式表示了平移,旋转。但当多个操作动画的时候,就需要每次变化后得到新的值,然后在这个值的基础上进行下一个变化,会变得更加繁琐。所以我们使用数学工具–来处理。后期基本都是用矩阵进行图形变化的。
2025-03-28 19:45:00
265
原创 Vue3动态加载组件,警告:Vue received a Component than was made a reactive object
VUE3动态渲染组件
2025-03-26 21:30:00
536
原创 web安全:任意文件下载漏洞
点击对应名字,下载对应图片。但服务器还存在其他文件,只是前端没有展示出来。通过模拟路径下载,可以获取到意想不到的数据。看点击代码:如果模拟没有前端的图片,也会发现下载了所以这个叫任意文件下载漏洞。如果没有控制,那么可能会获取你服务器中的一些文件配置比如mysql配置文件,application.yml文件等等,也会有密码等私密信息。如果不知道服务器里面哪些可以,可以猜测一些常规文件,放在一个字段里,进行暴力破解。
2025-02-06 20:30:00
343
原创 web安全常用靶场
它提供了一系列精心设计的实验环境,旨在帮助安全爱好者、开发人员和安全研究员深入理解XSS攻击的工作原理、类型、危害以及防御策略。
2025-01-05 20:45:00
498
原创 鸿蒙HarmonyOS内容一直居中问题,超出滚动
官网找了一堆文案,硬生生没找到,最后无意间看demo中发现还有这个组件Scroll!包了一层,居然可以实现,但是写超出屏幕居然不会自己滚动。Column默认是居中的,但平常都是从上往下写。
2024-12-11 19:45:00
535
原创 安卓Kotlin: 获取配置,BuildConfig类找不到
今天要使用环境变量,访问不到BuildConfig类,import导包也找不到类,具体设置如下:但是buildConfig文件却能看到,已经生成。
2024-11-26 16:30:00
881
原创 解决Android Studio开发,选择设备一直是Loading Devices点不动
开发安卓App,下载了个Android Studio然后运行项目的时候没有可选择设备,创建模拟器又很慢,好不容易创建完成,启动直接报错了。而且这个地方一直点击没反应。打开android studio时,出现loading devices,加载不出真机或者模拟器。
2024-11-21 20:00:00
1246
原创 window.open()打开页签被拦截的问题
后端返回一个全路径地址/或者oss指定文件路径,可以是图片,可以是Pdf,excel,word等等路径,需要前端访问下载。
2024-11-13 21:30:00
564
原创 webpack迁移vite报错:Error: Cannot find module @rollup/rollup-win32-x64-msvc. npm has a bug related to op
删除项目中的:package-lock.json 以及 node_modules,如果还是报错就在package.json中添加,然后,重新安装一下依赖。
2024-11-13 15:46:24
912
原创 启动sourceTree,具体突然闪退!!!
进入该文件夹里面,找到Composition.cache 文件并删除,此时双击图标就能打开sourceTree了。:代码控制一直用sourcetree软件,突然有一天开机电脑之后,双击,闪了一下自动退出。【重新启动之后,会自动添加该文件】删除之后,重新双击启动,就会发现完美解决了!
2024-10-17 17:45:00
977
原创 vue3版本升级出现的问题-CSS篇::v-deep usage as a combinator has been deprecated. Use :deep(<inner-selector>) in
原先用的深度选择器 deep 是已经被遗弃的写法,最好用新的写法来代替。问题报错: v-deep usage as a combinator has been deprecated. Use :deep()所以改成新的语法重新启动就不会报错了。
2024-08-25 21:30:00
1044
原创 关于Uniapp微信小程序uni.uploadFile上传报错---errMsg:“uploadFile:fail createUploadTask:fail invalid url
真机有自动去除前后空格,所以没有影响,但开发者工具没那么智能,导致图片上传报错。保证url的完整性,header中配置后端需要的参数就不会有任何问题了。
2024-07-26 19:45:00
3003
1
原创 JavaScript通用下载方法,但jpg图片下载打不开
image/jpg并不是一个标准的MIME类型,而image/jpeg是JPEG图像文件的正确MIME类型。在使用时,应始终选择image/jpeg以确保准确性和兼容性。
2024-06-26 21:30:00
1294
原创 springboot+jpa报错:java.sql.SQLSyntaxErrorException: Table ‘sell.hibernate_sequence‘ doesn‘t exist
在写数据库插入数据的时候报错如下想着也不需要hibernate_sequence这个表,怎么报不存在?原因是主键自增导致的原因。
2024-05-16 19:00:00
237
单片机课程设计
2016-01-05
JavaScript高级程序设计(第3版)中文 高清 完整
2018-08-08
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅