我有一个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) 有谁知道是否有一个系统可以滚动到 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) 我正在寻找一个可以在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)
我只想找到最基本的例子.
我已经创建了这个蒙版模糊效果(下面的代码),它在 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) 我在SCNView中有一个SCNScene渲染.我有一些在场景中渲染/移动的*.dae模型.
我有一个透明的立方体,当我的一个模型落后于它时,我希望模型不会被渲染,因为此刻,由于立方体是透明的,你可以通过立方体看到它.
是否有任何属性/设置/着色器可以应用于透明立方体,以便它后面的任何东西都不会被渲染?
例:
我的眼睛是绿点,立方体是蓝色方块,我的模型是红色圆圈,然而被立方体隐藏的圆圈部分是紫色......这实际上是不可见的.蓝色方块也是看不见的.
这个开发人员有一个遮挡着色器可以满足我的需求,但它是Unity:https://youtu.be/MK3D91kCKzM
亲切的问候
克里斯
我在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的错误
我将以下辅助方法与 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)
我很困惑...
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) 我试图快速实施Daniel Shiffman的XOR神经网络,我有所有的部分,但是经过训练后,结果出乎意料.
我的一部分认为这是实际的培训系统,试图一次学习多个东西.
我已将我的游乐场联系起来以防任何人发现任何错误:https://www.dropbox.com/s/9rv8ku3d62h03ip/Neural.playground.zip?dl = 0
丹尼尔斯代码:
我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)