- 博客(37)
- 收藏
- 关注
原创 独立开发在线客服系统 年,终于稳如老狗了:记录我踩过的坑(一)
主题(Topic)是消息的逻辑分类,每个主题被划分为多个分区(Partition)实现并行处理,每个分区又有多个副本(Replica)保证高可用。Kafka 适用于大数据场景的“重载卡车”,RabbitMQ 好似城市中的“跑车”灵活快速,RocketMQ 则是全能的“SUV”平衡可靠与性能。(Pull),消费者主动从 Broker 拉取消息,适合高吞吐但不保证极低延迟的场景。生产者将消息发送到交换机(Exchange),交换机根据绑定规则和路由键将消息路由到相应队列(Queue),消费者从队列获取消息。
2026-03-12 20:15:15
181
原创 Flutter 工程构架设计(MVVM + Repository)
Django 的 QuerySet.filter() 是 ORM 中最核心的查询方法,它能让开发者无需编写原生 SQL,就能精准过滤数据库中的数据。filter() 的核心优势在于“惰性执行”——调用时不会立即访问数据库,只有当迭代结果、调用 len()、list() 等方法时,才会触发 SQL 查询。如果需要快速上手,建议从基础字段查找开始,逐步尝试复杂查询场景,同时借助 Django 的 explain() 方法分析查询执行计划,持续优化查询性能。
2026-03-12 20:11:33
189
原创 【EF Core】优化后的模型
初始账号 / 密码:admin / admin(首次登录后强制要求修改密码)耗时:5–10 分钟(含容器初始化与服务启动)总结:官方单命令一键部署,无冗余配置步骤,无需手动准备配置文件,部署流程标准化,仅需验证服务器架构与配置符合要求,即可快速完成上线。NineData 社区版是真正的全能型免费数据管理平台:DevOps + 数据复制 + 数据对比三合一, 60+ 种数据源全覆盖,原生支持 Online DDL/DML、智能脱敏、Binlog 回滚等企业级能力,单命令 Docker 部署,零门槛上手。
2026-03-12 20:07:30
187
原创 “卧槽,系统又崩了!”——别慌,这也许是你看过最通俗易懂的分布式入门
再简单复述一下要点:大量出现在我们日常生活中的彩色图像基本都是 RGB 图像,这类图像的每个像素可以看作堆叠在一起的三个通道,分别代表图像在红、绿、蓝三个维度上的亮度,三者组合才形成了我们肉眼中的彩色图像。现在,如果将这样的图像输入深度学习模型进行训练,那么模型学习的就不再是图像在 RGB 三个维度上的空间结构与颜色分布的规律,而是更多维度上的空间结构与不同波长上的光强分布规律。因此,两者所依赖的判别依据不同,即使任务名称相同(例如分类),模型关注的特征也完全不同,强行混用,只会得到近乎随机的结果。
2026-03-12 20:03:49
216
原创 速览:TrafficVLM、DeepSeek-Terminus、Qwen-Omni、蚂蚁百灵、Wan.-Animate、Qianfan-VL
虽然 size() 方法本身是 public 的,但因为类本身是 private 修饰符,OGNL在反射访问时需要调用 setAccessible(true) 来绕过权限检查。Arrays.asList() 返回的不是我们熟悉的 java.util.ArrayList,而是 java.util.Arrays 的一个私有静态内部类 Arrays$ArrayList。老版本MyBatis在处理反射时有个并发问题:当需要调用私有类的方法时,会先设置 accessible = true,调用完再设回 false。
2026-03-11 15:09:25
193
原创 QGIS开发笔记(四):QgsRasterLayer加载Cesium二维地图的瓦片地图数据到QGIS
凭借其“自然语言驱动、插件化拓展、多平台无缝集成”的核心优势,OpenClaw 能够帮助企业将重复性工作流程自动化,让员工在企业微信中通过简单的对话即可完成会议纪要生成、任务分配、数据查询、服务器运维等复杂操作。即使您没有任何技术背景,也能按步骤零失误完成部署与集成。Secret(应用密钥):点击“查看”按钮获取,格式如 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx。需通过“企业微信 + 微信互通”功能,将企业微信应用消息转发至个人微信(需企业微信管理员开启“微信插件”)。
2026-03-11 15:00:32
197
原创 每天分钟,混剪视频Agent产出条爆款,单月变现位数(喂饭级教程)
哦凑型旨Streamlit 是一款专为数据科学家和机器学习工程师设计的 Python 库,可快速将数据脚本转换为交互式 Web 应用,无需前端开发经验,所以最近研究了一下,结合LangChain 1.0 实现了简单的智能问答前后端应用,大模型使用DeepSeek。st.markdown("使用 LangChain 1.0 和 Streamlit 构建的对话系统")user_input = st.chat_input("请输入您的问题...")st.error(f"请求失败: {str(e)}")
2026-03-11 11:36:55
164
原创 CSP-J/S 第一轮游记
反向代理是 Nginx 的核心功能,它接收客户端请求,转发给后端的 Flask 应用(通过 Gunicorn),再将响应返回给客户端。启用配置后,Nginx 会监听 80 端口,将所有请求代理到本地的 8000 端口(即 Gunicorn 服务)。- 查看日志:日志位于 /var/log/nginx/,access.log 记录访问,error.log 记录错误。步骤 2:Nginx 配置(文件:/etc/nginx/sites-available/myapp)# 替换为你的服务器 IP。
2026-03-11 11:30:54
190
原创 lessandmore
在递归中,一个复杂的问题被分解为相同类型但规模更小的子问题,直到达到一个简单到可以直接解决的基本情况(基准情况)。分治法(Divide and Conquer)是一种解决复杂问题的重要算法思想,其核心思想是将一个难以直接解决的大问题,分割成若干个规模较小的子问题,以便各个击破,最后将子问题的解组合起来,得到原问题的解。递归算法的妙处在于它能用简洁优雅的代码解决看似复杂的问题,但在使用时一定要注意避免无限递归和重复计算等问题。// 递归情况:n!合并(Combine):将各子问题的解合并为原问题的解。
2026-03-11 11:26:21
222
原创 通过命令模拟pod创建
很明显的,由于client和server的数量是非常多的(因为多个服务可能公用一个公网IP),所以转发表是一个非常宝贵的资源,一旦转发表满了,就无法创建新的连接路径了。从上面代码中我们可以看到,LVS通过设置的timeout_table来设置转发表项超时时间,而不同的tcp状态会有不同的超时时间,而默认的established的超时时间是15 * 60 * HZ也就是15min。为了解决第一种的方案的问题,我们可以依旧复用连接,只不过这个复用时间特别短,例如6s之内复用,超过6s的连接就直接丢弃。
2026-03-10 13:14:13
204
原创 如何闭环自动驾驶仿真场景,实现从“重建”到“可用”?
的分布可能非常复杂,甚至是多模态的,即在某个状态下,数据集中可能存在多组不同的、有效的动作。通过使用去噪模型(denoising model)将杂乱的观察结果转移(transfer)到干净的观察结果上,SCMA 可以作为各种 policy 的即插即用的增强功能,以减轻视觉上的干扰。然而,这些方法可能会施加过度的限制或有偏见的价值估计,从而可能限制性能改进。虽然许多方法利用探索奖励来鼓励探索,而不是仅仅依赖外在奖励,但这些基于奖励的方法往往面临学习效率和可扩展性的挑战,尤其是在具有高维状态空间的环境中。
2026-03-10 13:09:10
210
原创 把委托说透():开始委托之旅 委托与接口
很明显的,由于client和server的数量是非常多的(因为多个服务可能公用一个公网IP),所以转发表是一个非常宝贵的资源,一旦转发表满了,就无法创建新的连接路径了。从上面代码中我们可以看到,LVS通过设置的timeout_table来设置转发表项超时时间,而不同的tcp状态会有不同的超时时间,而默认的established的超时时间是15 * 60 * HZ也就是15min。为了解决第一种的方案的问题,我们可以依旧复用连接,只不过这个复用时间特别短,例如6s之内复用,超过6s的连接就直接丢弃。
2026-03-09 13:09:05
169
原创 JavaScript 图片预览效果
的分布可能非常复杂,甚至是多模态的,即在某个状态下,数据集中可能存在多组不同的、有效的动作。通过使用去噪模型(denoising model)将杂乱的观察结果转移(transfer)到干净的观察结果上,SCMA 可以作为各种 policy 的即插即用的增强功能,以减轻视觉上的干扰。然而,这些方法可能会施加过度的限制或有偏见的价值估计,从而可能限制性能改进。虽然许多方法利用探索奖励来鼓励探索,而不是仅仅依赖外在奖励,但这些基于奖励的方法往往面临学习效率和可扩展性的挑战,尤其是在具有高维状态空间的环境中。
2026-03-09 13:04:09
371
原创 经过一年时间的沉淀 再次回首 TCP Socket服务器编程
很明显的,由于client和server的数量是非常多的(因为多个服务可能公用一个公网IP),所以转发表是一个非常宝贵的资源,一旦转发表满了,就无法创建新的连接路径了。从上面代码中我们可以看到,LVS通过设置的timeout_table来设置转发表项超时时间,而不同的tcp状态会有不同的超时时间,而默认的established的超时时间是15 * 60 * HZ也就是15min。为了解决第一种的方案的问题,我们可以依旧复用连接,只不过这个复用时间特别短,例如6s之内复用,超过6s的连接就直接丢弃。
2026-03-08 11:18:20
224
1
原创 不畏浮云遮望眼,只缘身在最高峰
的分布可能非常复杂,甚至是多模态的,即在某个状态下,数据集中可能存在多组不同的、有效的动作。通过使用去噪模型(denoising model)将杂乱的观察结果转移(transfer)到干净的观察结果上,SCMA 可以作为各种 policy 的即插即用的增强功能,以减轻视觉上的干扰。然而,这些方法可能会施加过度的限制或有偏见的价值估计,从而可能限制性能改进。虽然许多方法利用探索奖励来鼓励探索,而不是仅仅依赖外在奖励,但这些基于奖励的方法往往面临学习效率和可扩展性的挑战,尤其是在具有高维状态空间的环境中。
2026-03-08 11:13:01
219
原创 非常好玩的C#/.NET 基础 -- 安全有效引发事件
很明显的,由于client和server的数量是非常多的(因为多个服务可能公用一个公网IP),所以转发表是一个非常宝贵的资源,一旦转发表满了,就无法创建新的连接路径了。从上面代码中我们可以看到,LVS通过设置的timeout_table来设置转发表项超时时间,而不同的tcp状态会有不同的超时时间,而默认的established的超时时间是15 * 60 * HZ也就是15min。为了解决第一种的方案的问题,我们可以依旧复用连接,只不过这个复用时间特别短,例如6s之内复用,超过6s的连接就直接丢弃。
2026-03-07 12:54:42
179
原创 throw和throw ex的区别
的分布可能非常复杂,甚至是多模态的,即在某个状态下,数据集中可能存在多组不同的、有效的动作。通过使用去噪模型(denoising model)将杂乱的观察结果转移(transfer)到干净的观察结果上,SCMA 可以作为各种 policy 的即插即用的增强功能,以减轻视觉上的干扰。然而,这些方法可能会施加过度的限制或有偏见的价值估计,从而可能限制性能改进。虽然许多方法利用探索奖励来鼓励探索,而不是仅仅依赖外在奖励,但这些基于奖励的方法往往面临学习效率和可扩展性的挑战,尤其是在具有高维状态空间的环境中。
2026-03-07 12:49:04
360
原创 游戏服务端究竟解决了什么问题?
很明显的,由于client和server的数量是非常多的(因为多个服务可能公用一个公网IP),所以转发表是一个非常宝贵的资源,一旦转发表满了,就无法创建新的连接路径了。从上面代码中我们可以看到,LVS通过设置的timeout_table来设置转发表项超时时间,而不同的tcp状态会有不同的超时时间,而默认的established的超时时间是15 * 60 * HZ也就是15min。为了解决第一种的方案的问题,我们可以依旧复用连接,只不过这个复用时间特别短,例如6s之内复用,超过6s的连接就直接丢弃。
2026-03-06 12:53:03
170
原创 通俗易懂,C#如何安全、高效地玩转任何种类的内存之Span的本质(一)。
的分布可能非常复杂,甚至是多模态的,即在某个状态下,数据集中可能存在多组不同的、有效的动作。通过使用去噪模型(denoising model)将杂乱的观察结果转移(transfer)到干净的观察结果上,SCMA 可以作为各种 policy 的即插即用的增强功能,以减轻视觉上的干扰。然而,这些方法可能会施加过度的限制或有偏见的价值估计,从而可能限制性能改进。虽然许多方法利用探索奖励来鼓励探索,而不是仅仅依赖外在奖励,但这些基于奖励的方法往往面临学习效率和可扩展性的挑战,尤其是在具有高维状态空间的环境中。
2026-03-06 12:47:43
323
原创 Chaney不会代码
很明显的,由于client和server的数量是非常多的(因为多个服务可能公用一个公网IP),所以转发表是一个非常宝贵的资源,一旦转发表满了,就无法创建新的连接路径了。从上面代码中我们可以看到,LVS通过设置的timeout_table来设置转发表项超时时间,而不同的tcp状态会有不同的超时时间,而默认的established的超时时间是15 * 60 * HZ也就是15min。为了解决第一种的方案的问题,我们可以依旧复用连接,只不过这个复用时间特别短,例如6s之内复用,超过6s的连接就直接丢弃。
2026-03-05 12:10:21
194
原创 基于C#+avalonia ui实现的跨平台点胶机灌胶监控控制上位机软件
的分布可能非常复杂,甚至是多模态的,即在某个状态下,数据集中可能存在多组不同的、有效的动作。通过使用去噪模型(denoising model)将杂乱的观察结果转移(transfer)到干净的观察结果上,SCMA 可以作为各种 policy 的即插即用的增强功能,以减轻视觉上的干扰。然而,这些方法可能会施加过度的限制或有偏见的价值估计,从而可能限制性能改进。虽然许多方法利用探索奖励来鼓励探索,而不是仅仅依赖外在奖励,但这些基于奖励的方法往往面临学习效率和可扩展性的挑战,尤其是在具有高维状态空间的环境中。
2026-03-05 12:04:23
340
原创 Docker Desktop里搭建Mysql .主从复制的保姆级教程
很明显的,由于client和server的数量是非常多的(因为多个服务可能公用一个公网IP),所以转发表是一个非常宝贵的资源,一旦转发表满了,就无法创建新的连接路径了。从上面代码中我们可以看到,LVS通过设置的timeout_table来设置转发表项超时时间,而不同的tcp状态会有不同的超时时间,而默认的established的超时时间是15 * 60 * HZ也就是15min。为了解决第一种的方案的问题,我们可以依旧复用连接,只不过这个复用时间特别短,例如6s之内复用,超过6s的连接就直接丢弃。
2026-03-04 12:05:30
186
原创 NOTHINGBUTNOTHING
的分布可能非常复杂,甚至是多模态的,即在某个状态下,数据集中可能存在多组不同的、有效的动作。通过使用去噪模型(denoising model)将杂乱的观察结果转移(transfer)到干净的观察结果上,SCMA 可以作为各种 policy 的即插即用的增强功能,以减轻视觉上的干扰。然而,这些方法可能会施加过度的限制或有偏见的价值估计,从而可能限制性能改进。虽然许多方法利用探索奖励来鼓励探索,而不是仅仅依赖外在奖励,但这些基于奖励的方法往往面临学习效率和可扩展性的挑战,尤其是在具有高维状态空间的环境中。
2026-03-04 11:59:49
368
原创 ogg-opus协议解析示例
很明显的,由于client和server的数量是非常多的(因为多个服务可能公用一个公网IP),所以转发表是一个非常宝贵的资源,一旦转发表满了,就无法创建新的连接路径了。从上面代码中我们可以看到,LVS通过设置的timeout_table来设置转发表项超时时间,而不同的tcp状态会有不同的超时时间,而默认的established的超时时间是15 * 60 * HZ也就是15min。为了解决第一种的方案的问题,我们可以依旧复用连接,只不过这个复用时间特别短,例如6s之内复用,超过6s的连接就直接丢弃。
2026-03-03 22:00:31
224
原创 文生图模型Stable Diffusion使用详解
的分布可能非常复杂,甚至是多模态的,即在某个状态下,数据集中可能存在多组不同的、有效的动作。通过使用去噪模型(denoising model)将杂乱的观察结果转移(transfer)到干净的观察结果上,SCMA 可以作为各种 policy 的即插即用的增强功能,以减轻视觉上的干扰。然而,这些方法可能会施加过度的限制或有偏见的价值估计,从而可能限制性能改进。虽然许多方法利用探索奖励来鼓励探索,而不是仅仅依赖外在奖励,但这些基于奖励的方法往往面临学习效率和可扩展性的挑战,尤其是在具有高维状态空间的环境中。
2026-03-03 21:50:15
322
原创 支持多存储方式的开源文件列表程序:OpenList
很明显的,由于client和server的数量是非常多的(因为多个服务可能公用一个公网IP),所以转发表是一个非常宝贵的资源,一旦转发表满了,就无法创建新的连接路径了。从上面代码中我们可以看到,LVS通过设置的timeout_table来设置转发表项超时时间,而不同的tcp状态会有不同的超时时间,而默认的established的超时时间是15 * 60 * HZ也就是15min。为了解决第一种的方案的问题,我们可以依旧复用连接,只不过这个复用时间特别短,例如6s之内复用,超过6s的连接就直接丢弃。
2026-03-02 12:48:00
403
原创 (三)数仓人必看!ODS 到 DWS 各层设计规范全解析,含同步/存储/质量核心要点
的分布可能非常复杂,甚至是多模态的,即在某个状态下,数据集中可能存在多组不同的、有效的动作。通过使用去噪模型(denoising model)将杂乱的观察结果转移(transfer)到干净的观察结果上,SCMA 可以作为各种 policy 的即插即用的增强功能,以减轻视觉上的干扰。然而,这些方法可能会施加过度的限制或有偏见的价值估计,从而可能限制性能改进。虽然许多方法利用探索奖励来鼓励探索,而不是仅仅依赖外在奖励,但这些基于奖励的方法往往面临学习效率和可扩展性的挑战,尤其是在具有高维状态空间的环境中。
2026-03-02 12:42:24
420
原创 银河麒麟下Redis的安装和集群配置
很明显的,由于client和server的数量是非常多的(因为多个服务可能公用一个公网IP),所以转发表是一个非常宝贵的资源,一旦转发表满了,就无法创建新的连接路径了。从上面代码中我们可以看到,LVS通过设置的timeout_table来设置转发表项超时时间,而不同的tcp状态会有不同的超时时间,而默认的established的超时时间是15 * 60 * HZ也就是15min。为了解决第一种的方案的问题,我们可以依旧复用连接,只不过这个复用时间特别短,例如6s之内复用,超过6s的连接就直接丢弃。
2026-03-01 11:12:12
305
原创 【GitHub每日速递 】Zen MCP:一键 orchestrate 多 AI 模型,代码开发协作新革命!
的分布可能非常复杂,甚至是多模态的,即在某个状态下,数据集中可能存在多组不同的、有效的动作。通过使用去噪模型(denoising model)将杂乱的观察结果转移(transfer)到干净的观察结果上,SCMA 可以作为各种 policy 的即插即用的增强功能,以减轻视觉上的干扰。然而,这些方法可能会施加过度的限制或有偏见的价值估计,从而可能限制性能改进。虽然许多方法利用探索奖励来鼓励探索,而不是仅仅依赖外在奖励,但这些基于奖励的方法往往面临学习效率和可扩展性的挑战,尤其是在具有高维状态空间的环境中。
2026-03-01 11:05:35
406
原创 新兴数据湖仓手册·从分层架构到数据湖仓架构():数据仓库分层的概念与设计
模型支持广泛:支持多个模型提供商,如 Gemini、OpenAI、Azure、X.AI、OpenRouter、DIAL、Ollama 等;多模型协作:作为 Model Context Protocol 服务器,可将喜爱的 AI 工具连接到多个 AI 模型,支持对话线程,让 CLI 能与多个 AI 模型讨论想法、交换推理、获取第二意见甚至进行协作辩论,实现真正的 AI 协作和对话连续性。简单讲,它提供沙箱、开发工具和测试基准,让AI能够学习控制完整的桌面系统(如macOS、Linux、Windows)。
2026-02-28 21:32:38
824
原创 WPF/C#:使用Microsoft Agent Framework框架创建一个带有审批功能的终端Agent
calc(var(--border_radius) - 1px) 0, calc(var(--border_radius) - 1px) 100%, // 两条横边。此造型如果内部无需镂空,整体还是比较简单的,利用 background: radial-gradient() 径向渐变或者 mask,都能比较轻松的实现。然后,利用上述的技巧,我们让渐变图形,整体偏移 -30px -30px,也就是让径向渐变图形的圆心,处于div的左上角 0 0 坐标处。在 CSS 高阶小技巧 - 角向渐变的妙用!
2026-02-28 21:29:59
460
原创 RL | 速读 IJCAI 2025 的强化学习论文
的分布可能非常复杂,甚至是多模态的,即在某个状态下,数据集中可能存在多组不同的、有效的动作。通过使用去噪模型(denoising model)将杂乱的观察结果转移(transfer)到干净的观察结果上,SCMA 可以作为各种 policy 的即插即用的增强功能,以减轻视觉上的干扰。然而,这些方法可能会施加过度的限制或有偏见的价值估计,从而可能限制性能改进。虽然许多方法利用探索奖励来鼓励探索,而不是仅仅依赖外在奖励,但这些基于奖励的方法往往面临学习效率和可扩展性的挑战,尤其是在具有高维状态空间的环境中。
2025-12-17 21:58:34
908
原创 PHP 图像处理实战 GD/Imagick 从入门到精通,构建高性能图像服务
只有在确实需要以下功能时才考虑 Imagick:色彩配置文件管理、CMYK 支持、动画 GIF 处理、HEIC/AVIF 格式解码、高级滤镜效果等。当系统支持 Imagick 扩展时(可通过 php -m | grep imagick 检查),可以使用其提供的自动方向校正、色彩配置文件处理、动画 GIF 支持以及更高质量的图像滤镜。智能裁剪算法: 对于内容管理系统的高级需求,可考虑使用 Intervention Image 等第三方库,在 GD/Imagick 基础上实现基于内容重要性的启发式裁剪。
2025-12-17 21:57:54
416
原创 未知来源的DMP文件导入到你创建的HIS用户及对应表空间(且不新增表空间)
要将未知来源的DMP文件导入到你创建的HIS用户及对应表空间(且不新增表空间),核心是通过Oracle的impdp(数据泵导入)工具,并强制将DMP中的表空间、用户映射到你的HIS表空间和用户。按以上步骤操作,即可将未知来源的DMP文件完整导入到你创建的HIS用户和HIS表空间,且不会新增表空间。REMAP_TABLESPACE:将DMP中的所有表空间映射到你的HIS表空间(避免创建新表空间)。REMAP_TABLESPACE=源表空间:HIS -- 源表空间填%,强制所有表空间映射到HIS。
2025-12-14 14:01:04
403
原创 FreeSWITCH使用mod_fail2ban模块来提升安全
FreeSWITCH系统部署在公网,大概率会碰到恶意注册,今天整理下debian12环境下使用mod_fail2ban + fail2ban + nftables来提升系统安全性的笔记,并提供使用示例及相关资源下载。3)mod_fail2ban模块监听到注册事件后,进行过滤,根据既定规则生成fail2ban.log日志;关注微信公众号(聊聊博文,文末可扫码)后回复 20251120 获取。关注微信公众号(聊聊博文,文末可扫码)后回复 20251120 获取。
2025-12-14 14:00:22
413
原创 《手搓》TaskFactory带你安全的起飞
控制住了异步的开始和结束,就相当于异步线程也在《手搓》TaskFactory的线程池中运行。ConcurrentTaskFactory就是手搓的TaskFactory。用上《手搓》TaskFactory,可以对上游做到并发可控,程序改动还极小。当发起异步请求后,该线程并不在《手搓》TaskFactory的线程池中。自己挖的坑终归是要填的,为此只好给小牛安利手搓TaskFactory。《手搓》TaskFactory控制住了异步的开始和结束。《手搓》TaskFactory里面内置了线程池。
2025-12-13 14:33:00
343
原创 【URP】Unity[法线贴图]原理与实践
2018年:Unity URP管线整合法线贴图标准化工作流,支持移动端优化。细节增强:通过RGB通道存储法线方向,模拟表面凹凸、划痕等微观结构。动态光照响应:每个像素的法线独立参与光照计算,实现更真实的明暗变化。通过切向量、副法线和法线构建正交基,将切线空间法线转换到世界空间。高模烘焙:通过ZBrush等工具将高模细节烘焙到低模法线贴图。性能优化:用低多边形模型配合法线贴图替代高模,减少计算开销。切线空间转换:通过TBN矩阵将法线从切线空间转到世界空间。
2025-12-13 14:31:59
583
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅