草庐IT

纹理表

全部标签

ios - 视频作为 openGLES 的纹理

我有一个本地视频,我想将其作为纹理传递给openGL着色器。我知道有许多帖子涉及相关主题,有些帖子陈旧或奇怪,有些我无法开始工作。听起来要走的路是:加载视频将视频输出作为CVPixelBuffer然后,yuv与rgb、CVOpenGLESTextureCacheCreateTextureFromImage与glTexImage2D等方法各不相同。如果没有使用yuv的特定原因,我宁愿坚持使用rgb。我的代码能够呈现UIImages但我无法将其调整为视频。似乎CVOpenGLESTextureCacheCreateTextureFromImage现在比glTexImage2D更推荐将视频帧

swift - 如何在 Action 期间替换 SKSpriteNode 的图像,然后将其返回到原始纹理图集循环

我正在尝试在SpriteKit中制作一个基本的跑跳游戏。当View加载时,我希望Sprite节点使用来自纹理图集的图像Run。这是我设法做到的。当屏幕被触摸时,我希望这个图像改变为纹理图集中的另一个图像,称为Jump。当角色返回地面时,我希望它回到原始纹理图集循环。到目前为止,我编写了以下代码:importUIKitimportSpriteKitclassLevel1:SKScene{varHero:SKSpriteNode!//CreatesanobjectfortheHerocharacter.lettextureAtlas=SKTextureAtlas(named:"RunIma

ios - 如何将纹理(图像)添加到 SceneKit 模型,使其均匀覆盖模型(网格)?

刚开始玩弄SceneKit和ARKit。我遇到的一个问题是用图像纹理覆盖3DModel。正在发生的事情是,在ARKit中渲染的3DModel部分正确使用了纹理。其他部分不是。例如,我使用的沙发3D模型大致按比例(80英寸宽x36英寸高x36英寸深)。我将用尺寸为290x290像素的样本织物图像纹理覆盖网格。我看到的结果如下:在我的代码中:ifletmatts=child.geometry?.materials{varmatIndex=0formatinmatts{letmaterial=SCNMaterial()material.diffuse.contents=UIImage(nam

ios - SceneKit 在与 Swift 接触后获取纹理坐标

我想在3DSceneKit场景中操作2D纹理。因此我使用这段代码来获取本地坐标:@IBActionfunctap(sender:UITapGestureRecognizer){vararr:NSArray=my3dView.hitTest(sender.locationInView(my3dView),options:NSDictionary(dictionary:[SCNHitTestFirstFoundOnlyKey:true]))varres:SCNHitTestResult=arr.firstObjectasSCNHitTestResultvarvect:SCNVector3=

ios - 为 View 创建纹理背景

这个问题在这里已经有了答案:howtosetabackgroundimageascolorWithPatternImageinswift(7个答案)关闭7年前。有什么方法可以在Swift中为我们的Xcode6项目添加或创建纹理?我知道如何更改背景颜色或使用rgb。例如:self.view.backgroundColor=UIColor.yellowColor()但是我们如何为背景添加或创建纹理呢?

ios - 如何平铺 Sprite 节点的纹理?

使用SpriteKit,我如何平铺水平重复自身的SKTexture以填充SKSpriteNode的宽度?这是我目前所拥有的-仅拉伸(stretch)纹理。varheader=SKSpriteNode()letheaderTexture=SKTexture(imageNamed:"inGameHeader-1.png")header=SKSpriteNode(texture:headerTexture)header.position=CGPoint(x:0,y:CGRectGetMaxY(self.frame)-39)header.size.width=CGRectGetWidth(se

ios - swift:将 SKShapeNode 转换为 SKSpriteNode -> 无纹理

我试图通过首先将SKShapeNode转换为纹理来将SKShapeNode转换为Sprite节点。然而结果是看不见的Sprite。物理实体通常在那里,但没有显示图形。我想我尝试转换SKShapeNode的方式有问题,但我想不出是什么。你知道哪里出了问题吗?感谢所有帮助!letcreatedShape=SKShapeNode(path:path)createdShape.physicsBody=SKPhysicsBody(edgeLoopFromPath:createdShape.path)createdShape.physicsBody?.categoryBitMask=Physics

swift - 无法在 Swift playground 中加载纹理图集?

好吧,过去我只是通过键入它的名称将SKTextureAtlas加载到我的类中,但是现在在SwiftPlayground上我尝试添加几个扩展名(.atlas,.spriteatlas,没有扩展名..)和其他一切,然而我收到错误:TextureAtlas'testAtlas'cannotbefound.这就是我得到这个的方式:overrideinit(texture:SKTexture!,color:NSColor!,size:CGSize){super.init(texture:texture,color:color,size:size)atlas=SKTextureAtlas(name

swift - 旋转带有纹理的 SKShapeNode

我正在尝试使用纹理旋转SKShapeNode,但它不起作用。基本上,我有一个带有纹理的圆圈,我试图使用与SKSpriteNode相同的方式使其旋转:letspin=SKAction.rotateByAngle(CGFloat(M_PI/4.0),duration:1)问题是圆在旋转,而不是纹理。我可以使用以下代码进行检查:letwait=SKAction.waitForDuration(0.5)letblock=SKAction.runBlock({print(self.circle.zRotation)})letsequence=SKAction.sequence([wait,blo

ios - Sprite 套件,从内存中移除动画纹理

我在游戏加载时在我的ViewController中初始化了大约30个动画纹理,如下所示:fori=0;i基本上,我将所有动画放入一个数组中,这样我就可以轻松访问它们。在游戏过程中,这些动画中的每一个都会出现很短的时间,当我不需要它们时,我使用.removeFromParent()将其删除,但问题是它仍然保留在设备的内存中因此,一旦大约15-20个动画出现在游戏中并进入内存,它就会达到大约450-500MB,并导致游戏在iPhone4和4s上崩溃。有谁知道我怎样才能真正从内存中删除该动画,以便它不再需要时不再占用空间? 最佳答案 Sp