news 2026/4/22 3:55:51

PerlinNoise Perlin噪声(PerlinNoise)隐式函数构建模型并渲染

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
PerlinNoise Perlin噪声(PerlinNoise)隐式函数构建模型并渲染

一:主要的知识点

1、说明

本文只是教程内容的一小段,因博客字数限制,故进行拆分。主教程链接:vtk教程——逐行解析官网所有Python示例-CSDN博客

2、知识点纪要

本段代码主要涉及的有①柏林噪声的构建与渲染


二:代码及注释

import vtkmodules.vtkRenderingOpenGL2 import vtkmodules.vtkInteractionStyle from vtkmodules.vtkCommonColor import vtkNamedColors from vtkmodules.vtkCommonDataModel import vtkPerlinNoise from vtkmodules.vtkImagingHybrid import vtkSampleFunction from vtkmodules.vtkFiltersCore import vtkContourFilter from vtkmodules.vtkRenderingCore import vtkActor, vtkPolyDataMapper, vtkRenderWindow, vtkRenderWindowInteractor, \ vtkRenderer def main(): colors = vtkNamedColors() perlinNoise = vtkPerlinNoise() """ SetFrequency 设置在X,Y,Z方向上的重复频率 频率控制噪声的重复性和细节密度。 频率越高 → 噪声变化更快,细节更密集(像波纹更紧密的山脉) 率越低 → 噪声变化更缓慢,形成更大的起伏(像平缓的丘陵) """ perlinNoise.SetFrequency(2, 1.25, 1.5) """ SetPhase 设置噪声在 X、Y、Z 方向上的相位偏移 相位的作用是:制噪声图案在各个方向上的“起始点”或“偏移量” 比如:SetPhase(0, 0, 0) → 默认起点 SetPhase(π, 0, 0) → 整个噪声在 X 方向上平移半个周期 """ perlinNoise.SetPhase(0, 0, 0) # 采样 sample = vtkSampleFunction() sample.SetImplicitFunction(perlinNoise) sample.SetSampleDimensions(65, 65, 20) # 定义了体数据网格的分辨率。这里创建了一个 65×65×20 的网格,每个网格点(体素)的值就是该位置 Perlin 噪声函数的输出值 sample.ComputeNormalsOff() # 表面重建 surface = vtkContourFilter() surface.SetInputConnection(sample.GetOutputPort()) surface.SetValue(0, 0.0) mapper = vtkPolyDataMapper() mapper.SetInputConnection(surface.GetOutputPort()) mapper.ScalarVisibilityOff() actor = vtkActor() actor.SetMapper(mapper) actor.GetProperty().SetColor(colors.GetColor3d('SteelBlue')) renderer = vtkRenderer() renderWindow = vtkRenderWindow() renderWindow.AddRenderer(renderer) interactor = vtkRenderWindowInteractor() interactor.SetRenderWindow(renderWindow) # Add the actors to the renderer, set the background and size renderer.AddActor(actor) renderer.SetBackground(colors.GetColor3d('SlateGray')) renderWindow.SetWindowName('PerlinNoise') renderWindow.SetSize(300, 300) renderer.ResetCamera() renderWindow.Render() interactor.Start() if __name__ == '__main__': main()
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/21 11:39:32

Linly-Talker数字人系统:一键生成口型同步讲解视频

Linly-Talker数字人系统:一键生成口型同步讲解视频 在教育机构忙着录制网课、电商主播通宵直播、客服团队疲于应对重复咨询的今天,一个共通的痛点浮现出来:优质内容生产太慢,人力成本太高。有没有可能让“另一个我”替我讲话&…

作者头像 李华
网站建设 2026/4/21 2:16:16

Linly-Talker支持多线程推理,高并发场景从容应对

Linly-Talker:高并发数字人对话系统的多线程推理实践 在虚拟主播直播间里,成百上千的观众同时提问;企业客服系统中,数十名员工正通过AI助手处理客户咨询;在线教育平台上,数百个学生正在与个性化AI讲师互动……

作者头像 李华
网站建设 2026/4/17 20:23:20

Win xp激活

链接:https://pan.quark.cn/s/15877e4b435a器。

作者头像 李华
网站建设 2026/4/18 23:42:17

AI客服升级方案:传统IVR向Linly-Talker智能交互演进

AI客服升级方案:传统IVR向Linly-Talker智能交互演进 在银行热线中反复按键、听机械女声播报“请按1查询余额”,这种体验对今天的用户来说早已过时。当人们习惯了与Siri、小爱同学自然对话,再回到层层菜单的语音系统,就像从智能手机…

作者头像 李华
网站建设 2026/4/17 21:59:15

编程世界时间对象的最小公倍数(闲话Float-Time)

五花八门赖算力,数值直传操现代。 笔记模板由python脚本于2025-12-20 23:48:53创建,本篇笔记适合喜欢日期时间玩味的coder翻阅。 学习的细节是欢悦的历程 博客的核心价值:在于输出思考与经验,而不仅仅是知识的简单复述。 Python官…

作者头像 李华
网站建设 2026/4/19 8:22:46

医疗模型推理延迟高 后来补TensorRT优化才稳住实时预警

📝 博客主页:jaxzheng的CSDN主页 目录 医疗数据科学:当医院遇到Excel 一、从“手写病历”到“数据洪流” 二、AI医生:从“算账”到“看病” 三、数据整合:比调情还难的艺术 四、隐私保护:比防小偷还难的难题…

作者头像 李华