小编Chr*_*ris的帖子

将SCNView渲染到屏幕外缓冲区以生成图像

我有一个SCNView,它呈现我的场景.但是,我希望在保存时在不同的时间点获取几个屏幕截图.我最好的猜测是创建一个SCNRenderer并渲染场景指定不同的时间.我试过了,但是我的图像只是空白,这是我的代码,任何想法?:

-(void)test 
{
//First create a new OpenGL context to render to. 
NSOpenGLPixelFormatAttribute pixelFormatAttributes[] = {
    NSOpenGLPFAOpenGLProfile, NSOpenGLProfileVersionLegacy,
    NSOpenGLPFADoubleBuffer,
    NSOpenGLPFANoRecovery,
    NSOpenGLPFAAccelerated,
    NSOpenGLPFADepthSize, 24,
    0
};

NSOpenGLPixelFormat *pixelFormat = [[NSOpenGLPixelFormat alloc] initWithAttributes:pixelFormatAttributes];
if (pixelFormat == nil)
{
    NSLog(@"Error: No appropriate pixel format found");
}

NSOpenGLContext *context = [[NSOpenGLContext alloc] initWithFormat:pixelFormat shareContext:nil];

//set the renderer to render to that context
SCNRenderer *lRenderer = [SCNRenderer rendererWithContext:context.CGLContextObj options: nil];
lRenderer.scene = myscnview.scene;
lRenderer.pointOfView = [myscnview.pointOfView clone];

//render the scene
[lRenderer render];

//I think I …
Run Code Online (Sandbox Code Playgroud)

cocoa objective-c scenekit

8
推荐指数
1
解决办法
1764
查看次数

SwiftUI 表滚动到

有谁知道是否有一个系统可以滚动到 SwiftUI 表中的一行?我知道我可以使用 List/ScrollView/ScrollViewReader 组合,但理想情况下我正在寻找与Table. 我确实尝试在表格周围使用 ScrollViewReader,但这没有任何作用

https://developer.apple.com/documentation/SwiftUI/Table

我理想地在桌子上寻找一种方法,或者类似的东西TableReader

struct Person: Identifiable {
    let givenName: String
    let familyName: String
    let emailAddress: String
    let id = UUID()
}
private var people = [
    Person(givenName: "Juan", familyName: "Chavez", emailAddress: "juanchavez@icloud.com"),
    Person(givenName: "Mei", familyName: "Chen", emailAddress: "meichen@icloud.com"),
    Person(givenName: "Tom", familyName: "Clark", emailAddress: "tomclark@icloud.com"),
    Person(givenName: "Gita", familyName: "Kumar", emailAddress: "gitakumar@icloud.com")
.... 100 more....
]

var body: some View {
  ScrollViewReader { proxy
    Table(people) {
        TableColumn("Given Name", value: \.givenName)
        TableColumn("Family Name", value: …
Run Code Online (Sandbox Code Playgroud)

swiftui

8
推荐指数
1
解决办法
373
查看次数

带SceneKit SCNProgram的金属着色器

我正在寻找一个可以在SceneKit中使用SCNProgram工作的金属着色器.

有人能告诉我正确的方法声明/如何挂钩吗?

let program = SCNProgram()
program.vertexFunctionName = "myVertex"
program.fragmentFunctionName = "myFragment"
material.program = program
Run Code Online (Sandbox Code Playgroud)

然后是着色器

//MyShader.metal

vertex something myVertex(something)
{
    return something;
}

fragment float4 myFragment(something)
{
    return something
}
Run Code Online (Sandbox Code Playgroud)

我只想找到最基本的例子.

shader scenekit metal

7
推荐指数
2
解决办法
3301
查看次数

在 SwiftUI 中重新创建蒙版模糊效果

我已经创建了这个蒙版模糊效果(下面的代码),它在 SwiftUI 中运行,但使用 UIViewRepresentable 进行蒙版,是否可以重新创建相同的效果,但只是在纯 SwiftUI 中?

用蒙版模糊

这是当前的代码,如果你运行它,用你的手指在屏幕上拖动,这会移动蒙版以显示在下面。

import SwiftUI
import UIKit

struct TestView: View {

  @State var position: CGPoint = .zero

  var simpleDrag: some Gesture {
    DragGesture()
      .onChanged { value in
        self.position = value.location
      }
  }

  var body: some View {
    ZStack {
  
      Circle()
        .fill(Color.green)
        .frame(height: 200)
  
      Circle()
        .fill(Color.pink)
        .frame(height: 200)
        .offset(x: 50, y: 100)
  
      Circle()
        .fill(Color.orange)
        .frame(height: 100)
        .offset(x: -50, y: 00)
  
      BlurView(style: .light, position: $position)
        .frame(maxWidth: .infinity, maxHeight: .infinity)
  
    }
    .gesture(
      simpleDrag
    )

  }
}

struct BlurView: …
Run Code Online (Sandbox Code Playgroud)

uikit swiftui

7
推荐指数
1
解决办法
264
查看次数

SceneKit剔除飞机

我在SCNView中有一个SCNScene渲染.我有一些在场景中渲染/移动的*.dae模型.

我有一个透明的立方体,当我的一个模型落后于它时,我希望模型不会被渲染,因为此刻,由于立方体是透明的,你可以通过立方体看到它.

是否有任何属性/设置/着色器可以应用于透明立方体,以便它后面的任何东西都不会被渲染?

例:

我的眼睛是绿点,立方体是蓝色方块,我的模型是红色圆圈,然而被立方体隐藏的圆圈部分是紫色......这实际上是不可见的.蓝色方块也是看不见的.

卡尔

这个开发人员有一个遮挡着色器可以满足我的需求,但它是Unity:https://youtu.be/MK3D91kCKzM

亲切的问候

克里斯

graphics ios scenekit swift

6
推荐指数
1
解决办法
1113
查看次数

Catalina中的NSButton没有处于选择状态

我在Catalina上使用以下代码将NSButton设置为复选框(Mojave很好):

let checkbox = NSButton(frame: NSRect(x: 0, y: 0, width: 200, height: 32))
checkbox.setButtonType(.switch)
checkbox.title = "Sustain"
checkbox.state = .off
self.view.addSubview(checkbox)
Run Code Online (Sandbox Code Playgroud)

加载应用程序时看起来不错

关

但是,一旦我检查了一下,我希望出现的刻度线就不存在了

上

如果我加载了可视层次结构调试器,就可以很好地看到它,我已经尝试将这段代码直接放到新的应用程序中并且可以工作,但是在我的应用程序中它是隐藏的,几乎就像是某些东西将其覆盖...任何帮助表示赞赏

它也发生在NSPopUpButtons ....无边框:-s

更新:2019年10月14日

如评论中所述,这似乎是Xcode 11错误,Xcode 10.3在Catalina上正确呈现了按钮。

更新:2019年10月10日

奇怪的是,创建一个子类并设置一个CIFilter会显示该复选框,您只需要对一个NSButton进行此操作,然后其余所有工作就可以了:-s

import AppKit

class Checkbox : NSButton {

init() {
  super.init(frame: .zero)
    addFilter()
}

required init?(coder: NSCoder) {
    super.init(coder: coder)
    addFilter()
}

// add random cifilter
func addFilter() {
    let colorFilter = CIFilter(name: "CIFalseColor")!
    colorFilter.setDefaults()
    colorFilter.setValue(CIColor(cgColor: NSColor.black.cgColor), forKey: "inputColor0")
    colorFilter.setValue(CIColor(cgColor: NSColor.white.cgColor), forKey: "inputColor1")
    self.contentFilters = [colorFilter]
}


}
Run Code Online (Sandbox Code Playgroud)

对下拉菜单执行相同的操作,但是直到您单击它为止它是不可见的……开始感觉像是Catalina的错误

macos cocoa appkit nsbutton macos-catalina

6
推荐指数
0
解决办法
185
查看次数

os_log 调试和发布版本

我将以下辅助方法与 OS_Log 一起使用,但我不确定是否有必要。

我想在我的调试版本中记录内容,但(不一定)在我的发布版本中记录内容。

我对编译器是否删除发布版本中的 os_log 语句感到困惑

public func DLog(_ string: String, subsystem: OSLog, type: OSLogType) {
  #if DEBUG
  os_log("%{PUBLIC}@", log: subsystem, type: type, string)
  #endif
}
Run Code Online (Sandbox Code Playgroud)

我可以直接使用它并在发布版本中删除日志吗?

os_log("%{PUBLIC}@", log: subsystem, type: type, string)
Run Code Online (Sandbox Code Playgroud)

我很困惑...

logging swift oslog

6
推荐指数
1
解决办法
1266
查看次数

NDB映射(回调,produce_cursors = True)

map()的Google AppEngine NDB文档指出:

"支持所有查询选项关键字参数."

但是,我试图使用produces_cursors=Trueon map()并且我没有得到光标.

map(callback, pass_batch_into_callback=None, merge_future=None, **q_options)
Run Code Online (Sandbox Code Playgroud)

我想使用,map()因为我可以将回调设置为tasklet.

https://developers.google.com/appengine/docs/python/ndb/queryclass#kwdargs_options

编辑 - 提供代码示例:

@ndb.tasklet
def callback(user):
    statistics = yield ndb.Key(Statistics, user.key.id()).get_async()
    raise ndb.Return(user, statistics)

result = User.query().map(callback, produces_cursors=True)
Run Code Online (Sandbox Code Playgroud)

python google-app-engine app-engine-ndb

5
推荐指数
1
解决办法
1168
查看次数

XOR神经网络 - 意外结果

我试图快速实施Daniel Shiffman的XOR神经网络,我有所有的部分,但是经过训练后,结果出乎意料.

我的一部分认为这是实际的培训系统,试图一次学习多个东西.

结果截图

我已将我的游乐场联系起来以防任何人发现任何错误:https://www.dropbox.com/s/9rv8ku3d62h03ip/Neural.playground.zip?dl = 0

丹尼尔斯代码:

https://github.com/shiffman/The-Nature-of-Code-Examples/blob/master/chp10_nn/xor/code/src/Network.java

neural-network swift

5
推荐指数
1
解决办法
212
查看次数

iPhone X 没有深度数据,iPhone XS 没问题

depthData第一次在 iPhone X 上拍照时没有得到。

相机权限有效

如果我在iPhone X上运行代码,拍照,没有深度数据,如果我再次点击,我得到深度数据。如果我在打电话之前添加延迟,capturePhoto那么我确实得到depthData

如果我在iPhone XS上运行代码,拍一张照片,我马上就有深度数据

我的代码缺少什么吗?

import UIKit
import AVFoundation
import os.log

extension OSLog {
    /// The subsystem for the app
    public static var appSubsystem = "com.my.app"
    /// Image processing category
    static let imageService = OSLog(subsystem: OSLog.appSubsystem, category: "Image")
}

/**
 Use this as a logging system, it's compiled out for release builds for now.
 */
func DLog(_ string: String, subsystem: OSLog, type: OSLogType = .debug) { …
Run Code Online (Sandbox Code Playgroud)

depth ios avcapture swift iphone-x

5
推荐指数
0
解决办法
325
查看次数