我看了看,但找不到任何类似或实际显示Perlin噪音的方法.
我被告知要看OpenGL ES,但即使是搜索Perlin噪音或熔岩/等离子效应的例子也不会产生任何结果.
我真的很感激这方面的一些帮助.
多谢你们,
安德烈
一旦你获得了你的这种效果的RGBA数据,就会开始讨厌.
基本上有两种选择.
>创建一个UIVIEw子类并覆盖draw:(CGRect)方法.明智地使用Converting RGB data into a bitmap in Objective-C++ Cocoa从您的数据创建CGImage,并将该图像绘制到绘图中的当前上下文.
CGContextDrawImage(UIGraphicsGetCurrentContext(),<#CGRect rect#>,<#CGImageRef image#>);
如果这是静止图像,你没问题.如果它是动画,这可能不是最好的解决方案.
>熟悉iPhone上的OpenGL ES.
iPhone SDK的OpenGL ES示例是一个很好的起点.
研究纹理映射.熟悉glTexImage2D后,使用它来加载图像.
该示例可以通过以下方式轻松扩展:
有这些定义:
gluint spriteTexture; glubyte *spriteData; // the perlin noise will be here size_t wIDth,height;
然后在ESRenderer init方法中为纹理创建空间:
- (ID) init { ....wIDth = 512; // make sure the texture size is the power of 2height = 512;glGenTextures(1,&spriteTexture); glBindTexture(GL_TEXTURE_2D,spriteTexture); glTexImage2D(GL_TEXTURE_2D,GL_RGBA,wIDth,height,GL_UNSIGNED_BYTE,spriteData); //free(spriteData); // free this if not used any moreglTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_liNEAR); glEnableClIEntState(GL_VERTEX_ARRAY);glEnableClIEntState(GL_TEXTURE_COORD_ARRAY);
如果定期更新噪声,请在render方法中更新纹理
- (voID) render { .....glBindTexture(GL_TEXTURE_2D,spriteTexture);glTexImage2D(GL_TEXTURE_2D,spriteData);
啊,我想念好的旧视频是在$A000天:)
总结以上是内存溢出为你收集整理的如何在iPhone上生成Perlin Noise全部内容,希望文章能够帮你解决如何在iPhone上生成Perlin Noise所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)