news 2026/9/11 1:15:18

Gemini 3 Pro 生成法线贴图:从原理到 Blender/Unity 接入指南

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Gemini 3 Pro 生成法线贴图:从原理到 Blender/Unity 接入指南

如果你做 3D 美术、技术美术(TA)或者游戏开发,这几天应该看到过这样一个说法:Gemini 3 Pro 可以生成 normal maps(法线贴图)

这件事值得单独拿出来聊,因为它和“画一张好看的图”完全不同。法线贴图不是靠颜色和构图取胜的贴图,它用 RGB 三个通道编码表面法线方向,直接参与 PBR 光照计算。过去这条链路基本绕不开 Substance Painter、ZBrush 低模高模烘焙、Photoshop 滤镜或者 xNormal 这类专用工具。而现在,一个多模态大模型可以基于文字描述直接给出一张法线贴图,这对 3D 内容生产流程的影响是结构性的。

这篇文章不打算吹概念,而是按实际使用逻辑展开:先说 Gemini 3 Pro 生成法线贴图这件事到底属于什么能力,再看怎么在 API 层面把它调起来,然后重点解决三个实操问题——生成的法线贴图怎么验证、怎么接入 Blender/Unity/Unreal 的 PBR 流程、批量生成时有哪些坑。

适合读者:3D 美术、TA、独立游戏开发者、AI 落地工程人员,以及所有对“大模型进入 3D 资产管线”感兴趣的人。

1. 核心能力速览

先用一张表把关键信息列出来。凡是没有官方明确数字的地方,我统一标注“需实测”,不编数据。

能力项说明
模型Gemini 3 Pro,Google DeepMind 发布的多模态大模型
新增能力可直接生成 normal maps(法线贴图),也可用于生成其他材质贴图
输出形态从能力体现看是图像格式的法线贴图;具体输出字段以当前 API 返回为准
本地 GPU 需求不需要本地 GPU,走云端 API / AI Studio 访问
本地部署不支持,闭源在线模型
API 能力支持,通过 Gemini API 调用
批量任务支持,通过脚本循环调用实现
适合场景概念材质快速验证、法线贴图草稿、程序化贴图辅助、教学演示
不适合场景高精度 CG 级资产生产、需要严格 PBR 一致性的工业项目

需要说明的是,“生成法线贴图”这个能力的具体边界,比如最大输出分辨率、对无缝平铺的语义理解程度、生成速度,目前公开信息里没有完整数据。这篇文章后面给的是通用验证流程和工程接入方法,你拿到实际调用结果后,可以按同样的方法快速验收。

2. 为什么“生成一张法线贴图”值得关注

要理解这个能力的分量,先看传统法线贴图是怎么来的。

传统流程:高模到低模,烘焙再修缝

标准制作链路是这样的:先在 ZBrush 或 Blender 里雕刻一个细节丰富的高模,再做一个面数可控的低模,然后展开 UV,最后用 Substance Painter、Marmoset Toolbag 或 xNormal 把高模细节烘焙到低模的贴图上。

这个过程有几个硬性门槛:一是必须同时准备高模和低模;二是 UV 展开质量直接影响烘焙结果;三是不论角色、场景还是道具,都需要美术人员掌握一整套 DCC 工具链。对独立开发者来说,哪怕只是想给一个简单箱子加磨损细节,也得走完整流程。

现行 AI 方案的局限性

过去两年,用 Stable Diffusion 生成“像法线贴图”的图并不难。问题是,图像生成模型并不理解法线方向编码,生成的图常常只是视觉上接近法线贴图的紫蓝色纹理,RGB 通道并没有携带正确的法线信息。要真正使用,还得通过 ControlNet normal 模型、深度图反推或者第三方插件二次处理。

也就是说,老方案的瓶颈在于:生成模型不负责物理语义,只负责像素分布

Gemini 3 Pro 的变化

从 Gemini 3 Pro 透露的能力方向看,它把法线贴图生成直接整合进多模态模型的语义理解流程。模型不是“碰巧画出一张紫色纹理”,而是针对“某种材质表面应该有什么样的微观凹凸结构”做推理,再输出对应的法线贴图。

这意味着三件事:

  1. 法线贴图不再需要高模烘焙,只要描述清楚材质,模型直接输出。
  2. 非美术人员可以用自然语言快速生成可用的贴图草稿。
  3. 大模型的能力边界从“生成 2D 图像”延伸到了“生成携带物理渲染语义的 3D 资产”。

更直接地说,AI 正在吃掉传统 PBR 材质工作流里最依赖经验的那一环。

3. 适用场景与使用边界

适合谁用

  • 技术美术(TA):快速验证材质想法,把法线贴图草稿放进引擎看效果,再决定要不要精修。
  • 独立游戏开发者:没有专职美术的情况下,用文字生成占位贴图,把验证场景跑起来。
  • 概念设计师:在出图阶段快速确认表面质感,不必先雕刻高模。
  • AI 落地工程师:把法线贴图生成能力和现有程序化资产生成流程结合,做批量物料生产。

能解决什么问题

传统流程里,从想法到一张可用的法线贴图,中间隔着雕刻、展 UV、烘焙、修缝多个环节。Gemini 3 Pro 直接跳过大多数中间步骤,把时间成本压缩到“写提示词 + 等结果”。对前期的创意探索和方案验证来说,价值非常明显。

不适合什么场景

  • 高精度 CG 电影级资产生产,目前还需要大量人工精修,生成结果只能当底稿。
  • 需要严格物理正确的 PBR 项目,例如汽车漆面、特殊光学材质,手工调整不可替代。
  • 对贴图分辨率有硬性要求的生产管线,模型输出尺寸可能达不到项目规格,需要二次放大和处理。

使用边界与合规提醒

无论把生成结果用于个人作品还是商业项目,有几点必须注意:

  1. 不要上传未获得授权的人脸、品牌 Logo、受版权保护的角色形象作为参考输入。
  2. 生成结果若用于商业项目,先确认当前服务条款对生成内容版权的归属约定。
  3. 法线贴图如果应用于真实产品或付费资产,需要额外做版权复核。

4. 前置条件与环境准备

Gemini 3 Pro 是云端 API 模型,不涉及本地推理环境。所以环境准备比本地部署模型简单很多。

4.1 你需要准备的

  • Google AI Studio 账号,或可用的 Gemini API Key。
  • 一个能联网的开发环境,Windows、macOS、Linux 都可以。
  • Python 3.9+,用于调用 API 和处理返回结果。
  • 可选:Blender 3.x 以上,或 Unity 2021+ / Unreal Engine 5,用于验证生成的法线贴图。
  • 本地磁盘空间不需要太大,贴图文件本身很小。

4.2 环境检查清单

项目要求
操作系统任意主流系统,不需要 GPU
Python 版本建议 3.9 及以上
网络能访问 Gemini API 服务即可
API Key必须,从 AI Studio / 云控制台获取
验证工具Blender 或任意主流游戏引擎,任选其一

不需要 CUDA,不需要本地大模型,不需要考虑显存。这也是这个方案对普通开发者最友好的一点。

4.3 安装依赖

下面的 Python 代码块用到requests库,这是最通用的 HTTP 客户端方案,不依赖具体厂商 SDK:

pip install requests pillow

如果你本机已经有requests,只补一个pillow用于图像格式处理和法线贴图通道检查就行。

另外建议准备一个环境变量来存 API Key,避免写死在脚本里:

export GEMINI_API_KEY="你的API Key"

Windows PowerShell 下这样设置:

$env:GEMINI_API_KEY="你的API Key"

5. 调用 Gemini 3 Pro 生成法线贴图的参考流程

5.1 理解调用方式

Gemini 提供的 API 属于云端服务,调用结构通常是“把提示词发过去,服务端返回生成结果”。生成法线贴图本质上是让模型输出一张图像,所以关键操作有两点:提示词要明确告诉模型生成的是“切线空间法线贴图”,而不是普通彩色纹理;返回结果里要能拿到图片数据的 base64 编码,并解码保存为 PNG。

下面给出一个参考调用结构,使用generateContent风格接口。由于模型 ID 和请求字段在不同版本可能略有调整,代码中用注释标出需要按实际环境确认的位置。

5.2 Python 调用示例

import os import base64 import json import requests from PIL import Image from io import BytesIO # 从环境变量读取 Key API_KEY = os.getenv("GEMINI_API_KEY") if not API_KEY: raise ValueError("请先设置 GEMINI_API_KEY 环境变量") # 注意:模型 ID 请确认当前 API 可用的准确名称 MODEL_ID = "gemini-3-pro" # 通用 endpoint 模板,实际路径以官方文档为准 url = f"https://generativelanguage.googleapis.com/v1beta/models/{MODEL_ID}:generateContent" headers = { "Content-Type": "application/json", } prompt = """ 请生成一张无缝平铺的切线空间法线贴图(tangent-space normal map)。 表面内容:风化岩石墙面,有明显的裂纹、凹陷和颗粒感。 要求: 1. 法线贴图应采用标准切线空间编码,整体呈蓝紫色。 2. 表面纹理必须可以无缝平铺,没有明显接缝。 3. 只输出贴图本身,不要添加文字、边框或背景说明。 4. 输出 PNG 格式。 """ payload = { "contents": [ { "parts": [ {"text": prompt} ] } ], "generationConfig": { "temperature": 0.4, "candidateCount": 1, } } response = requests.post(url, headers=headers, params={"key": API_KEY}, json=payload, timeout=120) response.raise_for_status() data = response.json() # 从返回结果中提取图片 base64。不同版本的返回字段名可能有差异, # 建议先打印 data 查看实际结构,再按字段名解析。 image_data = data["candidates"][0]["content"]["parts"][0]["inlineData"]["data"] image_bytes = base64.b64decode(image_data) # 保存结果 output_path = "stone_wall_normal.png" with open(output_path, "wb") as f: f.write(image_bytes) # 用 Pillow 打开,做基础校验 img = Image.open(output_path) print(f"已保存:{output_path}") print(f"尺寸:{img.size},模式:{img.mode}")

这个脚本做完三件事:发送提示词、把返回的 base64 图片数据保存为 PNG、打印输出尺寸和图像模式。先跑通这一步,接下来才能做后面的验证。

5.3 curl 调用示例

不习惯用 Python 的话,用 curl 也能测:

# 注意替换 YOUR_API_KEY 和模型 ID curl -L "https://generativelanguage.googleapis.com/v1beta/models/gemini-3-pro:generateContent?key=YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "contents": [ { "parts": [ { "text": "生成一张无缝平铺的砖墙切线空间法线贴图,标准蓝紫色,不要文字和边框,PNG格式。" } ] } ] }' > response.json

返回结果会写在response.json里,再做一次 base64 解码就能拿到图片。实际使用中,Python 脚本比 curl 更适合做后续批量处理,这也是下文推荐的方式。

5.4 保存结果的额外处理

拿到 PNG 只是第一步。生产级用法里,你可能需要把图片裁剪到引擎友好的尺寸,比如 1024x1024 或 2048x2048。用 Pillow 可以直接处理:

from PIL import Image img = Image.open("stone_wall_normal.png") img = img.convert("RGB") img = img.resize((1024, 1024), Image.LANCZOS) img.save("stone_wall_normal_1024.png")

注意:放大后法线细节会被插值算法柔化,所以更推荐你在提示词里明确分辨率要求,或者让生成结果尽量接近目标尺寸。单纯靠放大来凑分辨率,细节会受损。

6. 提示词设计:稳定拿到可用法线贴图的关键

生成法线贴图的效果,一半取决于模型能力,另一半取决于提示词。下面给出几组经过拆解的提示词设计思路。

6.1 提示词四个必要信息

  1. 明确贴图类型:必须出现“切线空间法线贴图(tangent-space normal map)”字样。否则模型可能输出一张普通彩色图或者高度图。
  2. 指定材质内容:石墙、金属、布料、地形、树皮……材质越具体,法线细节越明确。
  3. 强调平铺属性:需要无缝平铺时,直接写“seamless tileable”,并补充“无接缝”。
  4. 输出格式约束:PNG、不要多余元素、不要文字。

6.2 可直接复用的提示词模板

模板一:风化石墙

请生成一张无缝平铺的切线空间法线贴图(tangent-space normal map)。 表面内容:风化岩石墙面,有明显裂纹、凹陷、颗粒状凸起。 要求: 1. 整体呈标准蓝紫色法线贴图编码。 2. 纹理必须无缝平铺,边缘无接缝。 3. 没有任何文字、边框、水印。 4. 输出 PNG 格式。

模板二:金属划痕

请生成一张切线空间法线贴图,表面是拉丝金属,带有细密划痕和少量磕碰凹坑。 要求:蓝紫色法线编码,划痕方向一致,无缝平铺,PNG 格式,无文字。

模板三:布纹织物

请生成一张无缝平铺的切线空间法线贴图,表现细密编织布纹,经纬线交叉处有轻微凹凸感。 要求:法线方向正确,布纹规律、平铺后无接缝,PNG 格式,无文字。

模板四:地形苔藓岩石

请生成一张切线空间法线贴图,表现山地岩石与苔藓混合表面,岩石硬朗、苔藓柔软细碎。 要求:无缝平铺,法线细节分明,蓝紫色法线编码,PNG 格式,无文字。

6.3 一次生成不满意怎么办

如果第一张结果的方向、细节密度都不对,不要急着改写提示词。按这个顺序排查:

  • 如果图片看起来不像法线贴图,把“切线空间法线贴图”这个短语放在提示词最前面,并增加一句“RGB 通道编码法线方向”。
  • 如果细节太弱,加入“强烈的表面凹凸细节”。
  • 如果不平铺,删除一切描述背景的词汇,明确写“边缘采样一致,可无缝循环”。
  • 如果结果偏绿或偏红,说明模型把普通纹理和法线贴图混了,重置提示词重跑。

7. 效果验证:法线贴图是否真的可用

拿到一张蓝紫色的图,不等于拿到一张可用的法线贴图。下面是一整套验证流程。

7.1 静态检查:先看颜色分布

用 PIL 打开图片,检查三个通道的分布:

from PIL import Image import numpy as np img = Image.open("stone_wall_normal_1024.png").convert("RGB") arr = np.array(img, dtype=np.float32) / 255.0 print("R通道均值:", round(arr[:, :, 0].mean(), 3)) print("G通道均值:", round(arr[:, :, 1].mean(), 3)) print("B通道均值:", round(arr[:, :, 2].mean(), 3))

切线空间法线贴图通常呈现蓝紫色,原因在于法线方向大部分指向表面外侧,也就是 Z 轴方向,B 通道数值较高,R 和 G 通道在 0.5 附近上下波动。如果打印出来 B 通道接近 1,R/G 通道均值接近 0.5,那说明编码结构基本正确。如果三个通道均值接近或没有规律,那大概率只是“长得像法线贴图”的彩色图。

7.2 Blender 中验证光照表现

把法线贴图接入 Blender,是验证表现效果最快的方式。

  1. 新建一个平面,细分到 100x100 左右,或者直接加一个默认球体。
  2. Shader Editor 里新建:Image Texture(贴图)、Normal Map(法线贴图节点)、Principled BSDF。
  3. Image Texture 的 Color Space 设置为 Non-Color(线性空间)。
  4. Image Texture Color 输出给 Normal Map 的 Color 输入。
  5. Normal Map 的 Normal 输出给 Principled BSDF 的 Normal 输入。
  6. 添加一个侧向点光源,旋转视角看凹凸变化。

判断标准:表面凹凸方向是否符合提示词描述,石头裂纹是否有起伏感,金属划痕是否有质感。如果凹凸方向相反,选中 Normal Map 节点,把 Strength 改为负数,或者单独翻转 G 通道。

7.3 Unity 中验证

Unity 导入贴图时,重点检查两处:

  • 纹理类型设为 Normal Map。
  • 导入后台自动处理色彩空间,不需要手动切 sRGB。

如果贴图导入后场景出现发紫、发灰的光照异常,检查一下纹理类型是不是被设成了 Default,或者色彩空间被当成了 sRGB。

7.4 平铺验证

无缝平铺是法线贴图生产级使用的高频要求。验证方法很简单:在 Blender 中给平面添加多个重复的 Image Texture 采样,或者直接在图像编辑器里打开带边缘重采样效果的预览,看边缘拼接处是否出现明显断层。

如果接缝明显,回到提示词里重新强调“seamless tileable”。也可以用 Substance Sampler 或者 Photoshop 的 Offset 滤镜手动修一遍,做法是水平垂直各偏移 50%,用仿制图章修补接缝后再偏移回来。

7.5 Mipmap 与远距离观察

法线贴图在高频细节下容易出现远处闪烁和摩尔纹。导入引擎后,把相机拉远看整体表现。如果远处出现剧烈闪烁,需要检查是否自动生成了 Mipmap。大多数引擎默认会生成,不用额外处理;但如果使用自定义渲染管线,要确认采样器启用了 mipmap 过滤。

8. 接口 API 与批量任务

单个提示词测试通过之后,批量生成就是自然而然的需求。做 3D 素材,通常不是只要一张墙,而是一整包“石墙、金属、地板、布料”的贴图组。

8.1 基于 CSV 的批量生成脚本

下面这个脚本读取一个prompts.csv文件,每一行是一条提示词和对应的输出文件名,循环调用 API 并保存结果。

prompts.csv格式:

output_name,prompt stone_wall,生成一张无缝平铺的切线空间法线贴图,风化岩石墙面,有裂纹和颗粒感 metal_scratched,生成一张切线空间法线贴图,拉丝金属表面,有划痕和凹坑 brick_wall,生成一张无缝平铺的切线空间法线贴图,红砖墙面,砖缝凹凸明显

批量 Python 脚本:

import os import csv import base64 import time import requests API_KEY = os.getenv("GEMINI_API_KEY") MODEL_ID = "gemini-3-pro" # 以当前 API 可用模型名为准 url = f"https://generativelanguage.googleapis.com/v1beta/models/{MODEL_ID}:generateContent" headers = {"Content-Type": "application/json"} def generate_normal_map(prompt: str, output_path: str): payload = { "contents": [{"parts": [{"text": prompt}]}], "generationConfig": {"temperature": 0.4, "candidateCount": 1}, } resp = requests.post(url, headers=headers, params={"key": API_KEY}, json=payload, timeout=120) resp.raise_for_status() data = resp.json() image_data = data["candidates"][0]["content"]["parts"][0]["inlineData"]["data"] image_bytes = base64.b64decode(image_data) with open(output_path, "wb") as f: f.write(image_bytes) print(f"已生成:{output_path}") with open("prompts.csv", "r", encoding="utf-8") as f: reader = csv.DictReader(f) for row in reader: name = row["output_name"].strip() prompt = row["prompt"].strip() output_path = f"outputs/{name}_normal.png" try: generate_normal_map(prompt, output_path) except Exception as e: print(f"生成失败:{name},原因:{e}") time.sleep(1) # 简单限速,避免触发频率限制

8.2 批量任务的日志与断点续跑

批量任务最大的隐患是跑一半断掉。建议在脚本里加一行结果落盘记录,成功一个就写入一个日志文件:

with open("batch_log.txt", "a", encoding="utf-8") as log: log.write(f"{output_path}\n")

下次再跑时,先读取日志,跳过已经生成的条目。这样断点续跑不用重新生成已经成功的贴图,省时间也省费用。

8.3 失败重试建议

调用云端 API 常见的失败类型是限流和网络抖动。建议对每个请求增加简单的指数退避重试:

import time def request_with_retry(payload, max_retries=3): for attempt in range(max_retries): try: resp = requests.post(url, headers=headers, params={"key": API_KEY}, json=payload, timeout=120) if resp.status_code == 429: wait_time = 2 ** attempt print(f"触发限流,{wait_time} 秒后重试") time.sleep(wait_time) continue resp.raise_for_status() return resp.json() except requests.exceptions.RequestException as e: print(f"请求异常:{e}") if attempt == max_retries - 1: raise time.sleep(2 ** attempt)

批量化不是单纯把单次请求套进循环,而是一个带限速、带日志、带失败重试的小型任务系统。工程上先按这个模板搭起来,再根据实际需求扩展并发数。

9. 资源占用与性能观察

由于 Gemini 3 Pro 是云端模型,本地不涉及显存占用,这里重点说的是 API 调用维度的性能观察方法。

9.1 单次请求耗时

单张法线贴图的生成时间受到多种因素影响,包括模型负载、提示词长度、生成分辨率设定。实际生产中,建议在脚本里记录每次请求的耗时:

start_time = time.time() # 调用 API elapsed = time.time() - start_time print(f"耗时:{elapsed:.2f}s")

不同时间段、不同批次之间,耗时标准差可能很大。批量任务要预留充足的重试缓冲,不要把超时时间设得太短。脚本里使用 120 秒超时是一个相对稳妥的开始值。

9.2 与本地方案的对比

如果你之前用 Stable Diffusion + ControlNet 生成法线贴图,本地需要至少 6G 显存,还要管理模型文件和环境依赖。Gemini 3 Pro 这条路线把硬件成本转移成 API 成本,本地只需要一个 Python 环境和网络连接。

对需要固守本地数据安全的项目,云端方案不适合;但对大多数个人开发者和团队来说,免部署、免维护的优势更明显。

9.3 确认输出分辨率

法线贴图最终用于引擎时,常见规格至少是 1024x1024,规格更高用到 2048 或 4096。如果模型默认输出达不到目标尺寸,可以在保存后做统一缩放,但前面说过,放大不是越多越好。更稳妥的做法是在提示词中描述清楚使用比例,例如“长宽比 1:1,包含足够细节以用于 2048 分辨率贴图”。

10. 常见问题与排查方法

问题现象可能原因排查方式解决方案
生成的图片不像法线贴图,像普通彩色纹理提示词未指定“切线空间法线贴图”检查提示词第一句是否明确把“tangent-space normal map”放到提示词最前
导入 Blender 后画面发紫/发灰色彩空间被当成 sRGB检查 Image Texture 的 Color Space设置为 Non-Color(线性空间)
凹凸方向与预期相反法线 G 通道方向约定不一致用侧光照观察凸起方向在 Normal Map 节点设负 Strength,或翻转 G 通道
边缘接缝明显生成结果不是无缝平铺用重复采样预览提示词强调 seamless tileable,或用后处理修缝
细节太少,表面太平提示词没有强调细节强度检查提示词是否包含“细节丰富”增加对裂纹、颗粒、凹陷的具体描述
API 返回 429达到频率限制查看响应状态码增加指数退避重试,降低请求频率
批量任务中断网络波动或单请求失败查看日志文件增加结果落盘和断点续跑
输出分辨率不够模型默认输出尺寸有限查看图片尺寸用 Pillow 统一缩放,或分块生成后拼接
图片放大后细节模糊插值算法柔化对比放大前后细节优先在提示词中描述目标分辨率,减少放大倍数

11. 最佳实践与使用建议

11.1 先小参数测试,再批量生产

不要一次性提交几十条提示词。先跑 3 到 5 条,人工确认法线方向、平铺属性、图像格式都没问题,再扩大批量范围。否则一轮跑下来全是方向错乱的结果,浪费时间也浪费调用量。

11.2 保持一套可复用的提示词模板

把材质类型、细节描述、平铺要求、格式约束拆成四个字段,放到 CSV 或 JSON 配置里统一管理。后续需要换风格时,只改参数,不动主脚本。

11.3 分目录管理素材

建议按“项目/材质类型/版本”建目录,例如:

outputs/ project_a/ stone/ v1/ stone_wall_normal.png v2/ stone_wall_normal.png project_b/ metal/ v1/ metal_scratched_normal.png

生成结果只在第一次看起来便宜,后续整理、筛选、复审同样要花成本。目录结构越早规范,后期越省事。

11.4 对关键资产做人工复核

生成的法线贴图可当草稿,但进入正式项目前至少要确认:方向正确、平铺无接缝、与 Albedo/Roughness 贴图风格一致、远距离没有明显闪烁。关键资产宁可多花十分钟人工看一遍,也不要直接进引擎后才发现问题。

11.5 接口服务的安全边界

如果把 Gemini 3 Pro 的调用封装成团队内部接口,不要让 API Key 暴露在客户端。建议在服务端做一层转发,同时加访问控制,避免 Key 泄露和个人开发者的额度被滥用。

11.6 合规使用生成内容

生成法线贴图时,不要使用未授权的人脸、品牌标志、受版权保护的游戏/影视资产作为参考输入。用于商业项目时,先确认服务条款对生成内容版权与使用范围的定义。合法授权、隐私保护、版权合规,是一条不能省略的底线。

12. 总结与下一步

Gemini 3 Pro 生成法线贴图这个能力,最值得尝试的点是:它把传统需要高模烘焙、UV 展开、专用工具处理才能得到的贴图,压缩成了一次 API 调用。对技术美术、独立开发者和 AI 落地工程师来说,这是一个可以快速接入现有工作流的新工具。

建议你按这个顺序验证:先跑通一次 API 调用拿到 PNG,然后用 Blender 球体加侧光检查法线方向,再测试平铺属性,最后把批量脚本跑起来。最容易踩的坑集中在三个地方:提示词没写“切线空间法线贴图”导致输出普通纹理、贴图当 sRGB 导入导致画面发紫、凹凸方向不一致导致表现反了。

后续你可以继续尝试的方向:把生成的多个贴图通道(Albedo、Normal、Roughness)组合成一套程序化材质;把法线贴图生成接入自动建模流程;或者利用批量接口做一个小型材质库,按主题批量产出贴图资产。先把单张贴图的验证流程跑通,后续所有扩展都会顺畅很多。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/3 1:56:21

技术面试八股文:从背题到知识体系的进阶指南

“八股文”这个词,在程序员圈子里的热度,这几年一直居高不下。从“Java八股文”、“C八股文”到“嵌入式八股文”、“软件测试八股文”,再到“Kafka八股文为什么能支撑百万并发”,几乎每个技术方向都有自己的“面试题库”。很多人…

作者头像 李华
网站建设 2026/9/3 6:53:46

边缘语言模型记忆增强:SSM状态注入与结构化记忆实践

最近在边缘设备上调语言模型推理时,遇到一个很实际的问题:设备内存有限,模型不能像云端那样无限扩展上下文窗口。用户问过的问题,换个会话模型就忘了,每次都要把历史记录重新拼进 prompt,推理延迟成倍上涨。…

作者头像 李华
网站建设 2026/9/3 13:32:42

STM32WL设备在ChirpStack上失联:AU915信道掩码解析bug排查全过程

刚拿到客户工单的时候,我以为是又遇到了“自建ChirpStack不兼容STM32WL”的玄学问题。设备是STM32WL55JC,LoRaWAN MW 2.5.0 / MAC 1.0.4,工作在AU915频段,在TTN上验了两周一点事没有;搬到客户自建的ChirpStack上&#…

作者头像 李华
网站建设 2026/9/4 12:58:46

STM32C092 USART1时钟配置详解:避免串口乱码的完整指南

串口打印乱码、波特率对不上、偶尔发几十个字节就卡死——如果你在调 STM32C092 的 USART1 时撞上这类问题,大概率不是代码逻辑错,而是时钟配置没弄对。C0 系列虽然是入门级 Cortex-M0,但它的时钟树和外设时钟来源有不少反直觉的地方&#xf…

作者头像 李华
网站建设 2026/9/6 10:25:18

国产CAE集体押注物理AI,工业仿真迎来范式切换

早上拿到新模型的几何文件,客户晚上就要初步仿真结论。传统做法是几何清理、画网格、设边界条件、提交求解器,快则几小时,慢则过夜。如果运气不好网格质量差、计算不收敛,这一天基本就交代了。而现在有一种新的做法正在改变这个流…

作者头像 李华
网站建设 2026/9/4 9:11:34

LLM agent 的 5 种上下文压缩策略

LLM agent 的 5 种上下文压缩策略 把 agent 的上下文压缩之后,token 数可能降了,账单反而更高。 原因不在 token 数本身,而在 prefix caching 里,token 数和最终计费额本来就是两回事。 一个长时间运行的 agent session&#x…

作者头像 李华