guofeng-threejs

Solid

国风 3D 网页渲染。当用户要"水墨风 3D""中国风网页特效""Three.js 水墨""国风 H5""青绿山水 3D""非真实感渲染 NPR""古风 WebGL"时使用。提供可运行的中式渲染 shader 与实现方法,不是通用 Three.js 教程。

AI & Automation 7 stars 1 forks Updated today MIT

Install

View on GitHub

Quality Score: 81/100

Stars 20%
30
Recency 20%
100
Frontmatter 20%
70
Documentation 15%
100
Issue Health 10%
80
License 10%
100
Description 5%
100

Skill Content

# 国风 Three.js 渲染 **定位说明**:通用 Three.js 教程已经很多(英文社区有大量高质量资源)。 这个技能只做一件他们不做的事——**中式美学的实时渲染**。 ## 什么时候用 中国风官网 / 文旅 H5 / 品牌活动页 / 水墨风交互 / 国风游戏原型 / 非真实感渲染(NPR)。 **不适用**:通用 3D 建模、物理仿真、写实渲染——那些去看 Three.js 官方文档更好。 ## 先问清楚 1. **载体**(PC 官网 / 手机 H5 / 微信内嵌)—— 决定性能预算 2. **要哪种中式质感**(水墨 / 青绿山水 / 敦煌壁画 / 剪纸皮影) 3. **有没有模型**(有 glTF?还是用几何体?) 4. **动效需求**(自动旋转 / 跟随鼠标 / 滚动驱动) > ⚠️ **移动端警告**:Three.js + 自定义 shader 在中低端安卓上会明显发热掉帧。 > H5 项目务必先确认目标机型,必要时降级为静态图。 ## 水墨渲染的三个核心 水墨效果不是加个滤镜,是**三件事的组合**: ### 1️⃣ 墨分五色 —— 色阶量化 真实光照是连续的,水墨是**分层**的。把明暗量化成 5 阶: ```glsl float lam = max(dot(N, normalize(uLight)), 0.0); float steps = 5.0; float q = floor(clamp(lam, 0.0, 1.0) * steps) / (steps - 1.0); vec3 col = mix(uInk, uPaper, q); // 浓墨 → 纸白 ``` > 阶数太多(>8)失去水墨感,太少(<3)像色块。**5 阶是甜点**。 ### 2️⃣ 边缘积墨 —— rim 压深 毛笔在轮廓处停留更久,墨更浓。用视线与法线夹角模拟: ```glsl float rim = 1.0 - max(dot(N, normalize(vV)), 0.0); float edge = smoothstep(0.45, 0.95, rim); col = mix(col, uInk, edge * 0.85); ``` ### 3️⃣ 笔触扰动 —— 噪声打破机械感 纯数学量化的边界太整齐,不像手绘。**在量化前扰动光照值**: ```glsl float n = noise(vP * 5.5 + uTime * 0.06); lam += (n - 0.5) * 0.16; // 扰动幅度别超过 0.2 ``` 再叠一层细噪声当宣纸颗粒: ```glsl col *= 0.97 + 0.03 * noise(vP * 40.0); ``` ## 工笔:勒线才是骨架 工笔和水墨的差别不在"画得细",在于**它是线主导的**。所以除了把色阶从 5 阶提到 9 阶、 把墨换成矿物色之外,真正的难点是那条线怎么画。 ### 描边的三条路,两条走不通 按 SKILL.md 的性能建议「能在材质里做的就在材质里做」,先试了材质内的两种做法: | 做法 | 结果 | |------|------| | `fwidth(N)` 检测法线突变画结构折边 | ❌ **光滑有机形体上基本无效**。这类形体没有硬转折,`length(fwidth(N))` 全场趋近 0,调阈值救不回来 | | rim(`1 - dot(N,V)`)压出轮廓暗边 | ❌ 能压出边,但...

Details

Author
sanhuang520-ship-it
Repository
sanhuang520-ship-it/awesome-chinese-ai-tools
Created
2 months ago
Last Updated
today
Language
HTML
License
MIT

Similar Skills

Semantically similar based on skill content — not just same category

API & Backend Featured

threejs-performance

Three.js 性能优化指南。当 Three.js/React Three Fiber 项目出现掉帧、内存增长、加载缓慢、绘制调用过多,或需要迁移 WebGPU、实现大规模粒子/实例化渲染、配置资源压缩管线时使用。触发关键词:"Three.js 优化"、"WebGPU"、"draw calls"、"内存泄漏"、"TSL"、"InstancedMesh"、"R3F 优化"等。不用于:通用 React 性能问题(用 vercel-react-best-practices)、WebGL/Three.js 入门教学、3D 美术资产的制作本身。

696 Updated 1 weeks ago
staruhub
Web & Frontend Listed

webgl-threejs-background-animation

用 Three.js 做融入页面背景的 WebGL 3D 动画与游戏内动画工艺——批处理 LineSegments/Points、config 驱动材质、双材质溶解、轨道相机视差、缓动与 game feel、视觉杠杆、性能预算、零 GPU 离屏休眠。触发词:做个 3D 背景、landing page 动效、WebGL hero、网页 3D 动画、Three.js 背景、游戏动画、粒子反馈、相机平滑、game feel、WebGL background animation、3D hero section、背景动画、融入背景的动画。Use when building decorative animated 3D backgrounds or in-game WebGL motion — batched LineSegments/Points, TUNING + CATEGORIES, dual-material dissolve, orbital/FPV camera, frame-rate-independent damping, juice/secondary motion, fog/halo levers, full lifecycle hygiene.

0 Updated 2 days ago
lizliz404
Web & Frontend Listed

web-image

用前端渲染生成图片 —— 不依赖模型的多模态能力,任何能写 HTML/CSS 的模型 (DeepSeek / Claude / Kimi / GPT 等) 都能用。 当用户要「生成/做/画一张图」且属于以下任意一种时使用:头像、图标、公众号封面、 OG 分享图、Banner/横幅、小红书封面、知识卡片、金句卡、代码片段图、数据卡、 功能发布图、对比图、步骤图、视频封面/缩略图、幻灯片单页、活动海报、名片、 二维码卡、配图、题图、缩略图、poster、cover、thumbnail、banner、avatar。 也用于:批量出多个尺寸/多平台的同一张图;把一段文字/数据/代码变成图; 给文章配图;做一套风格统一的系列图。 支持指定视觉风格,共 32 套:手绘/涂鸦/白板、黑板、水彩、拼贴/剪贴、博物图鉴、 瑞士国际主义、杂志编辑部、报纸、工程蓝图、档案手稿/打字机、包豪斯、装饰艺术 Art Deco、 双色印刷 Riso、粗野主义、孟菲斯、美漫波普、像素 8-bit、千禧 Y2K、蒸汽波、霓虹赛博朋克、 街头海报/喷漆、日式侘寂、中式水墨、国潮/新中式、终端 CLI、极光渐变、玻璃拟态、 奢侈品黑金、极简产品、电影海报、复古未来 70s、极简线条。 用户没指定时主动报 3~4 个候选让他选;说了库里没有的风格就按四步法拆成 token。 产出一个可预览的画板工作台页面,多种画幅并排展示,点按钮即可导出 PNG (页内零依赖导出 + 本机 Chrome 精确出图两条通道)。 不适用:需要照片级真实内容的图(人像、风景、材质渲染)—— 那需要真正的图像模型。

0 Updated today
whyubel1eve