当前位置: 首页 > news >正文

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()
http://www.jsqmd.com/news/116302/

相关文章:

  • 设备容器健康检查超时设太短致误杀 后来才知道动态匹配启动延迟
  • Linly-Talker语音克隆功能详解:3分钟复制你的声音
  • 用Linly-Talker制作美食烹饪教学视频?餐饮IP孵化捷径
  • 如何利用 LLM 推动基因编辑革命
  • PolyDataContourToImageData 3D集合图像转换成等效3D二值图像
  • Linly-Talker语音重复检测:防止TTS输出异常循环
  • LLM 的思考方式
  • win10 黑屏,只剩鼠标箭头光标 按win键可以显示任务栏
  • 【LangChain4J】提示词工程
  • OpenAI官方论文“泄密”GPT-5:RL到底有没有教坏CoT?万字深度实测
  • PolyDataToImageDataStencil如何用多边形数据作为“模板”来裁剪或屏蔽图像数据
  • 【无功优化】基于改进遗传算法的电力系统无功优化研究【IEEE30节点】(Matlab代码实现)
  • 上海交大《科学》发文,首次实现支持大模型的全光计算芯片
  • Linly-Talker支持模型灰度发布,逐步上线新功能
  • Linly-Talker开源镜像部署指南(含GPU加速优化)
  • 考虑实时市场联动的电力零售商鲁棒定价策略(Matlab代码实现)
  • 用Linly-Talker制作节日祝福视频?个性化礼品新创意
  • 可计算性:物理世界和意识
  • 【无人机协同】动态环境下多无人机系统的协同路径规划与防撞研究(Matlab代码实现)​
  • Linly-Talker支持多线程推理,高并发场景从容应对
  • 用Linly-Talker生成股票行情分析视频?金融内容自动化
  • Linly-Talker如何处理中英文混读?语音识别适配策略
  • Linly-Talker支持模型热切换,A/B测试轻松实现
  • 【虚拟同步机控制建模】三相虚拟同步发电机双环控制(Simulink仿真实现)
  • 途知抖音多模态数据采集与AI融合解析
  • AI教师上岗记:Linly-Talker在K12教育中的实际效果测评
  • 人生的机会,从来不在计划之中?(说说我在百度的故事...)
  • 海南自由贸易港全岛封关首日,西门子能源在海南启动建设燃机总装基地及服务中心 | 美通社头条
  • Linly-Talker音频频谱可视化:调试语音合成质量的利器
  • 复星与比亚迪达成全球战略合作,引领“出行+度假“新生态