»
首页
|
手机数码
|
汽车资讯
|
游戏硬件
|
评测专题
|
手机壁纸
|
海淘值得买
|
度假
|
求职招聘
|
广告联系
» 您尚未登录:请
登录
|
注册
|
标签
|
帮助
|
小黑屋
|
TGFC Lifestyle
»
Apple 专区
» ios8的metal类似AMD的mantle。。。。
发新话题
发布投票
发布商品
发布悬赏
发布活动
发布辩论
发布视频
打印
[新闻]
ios8的metal类似AMD的mantle。。。。
风间星魂
魔头
帖子
1361
精华
0
积分
12181
激骚
45 度
爱车
主机
相机
手机
注册时间
2006-6-26
发短消息
加为好友
当前离线
1
#
大
中
小
发表于 2014-6-3 10:30
显示全部帖子
At Apple's WWDC conference today they have just unveiled Metal, a new 3D graphics API to compete with OpenGL.
Like AMD's Mantle and the recent complaints about OpenGL and the overhead of OpenGL drivers, Apple has devised its own graphics API that is "closer to metal" and hence its name.
Apple's Craig Federighi said during the presentation that Metal allows for up to 10x the call rates of OpenGL's current speeds while having substantially less overhead. Initially the Metal graphics API is meant for iOS with driving the mobile gaming experience.
Exactly how open the Metal API will be remains to be seen and if/when the Apple Metal API will appear on the desktop within AMD/NVIDIA graphics drivers. At the very least, hopefully all of this recent attention around 3D graphics APIs will lead to faster innovation and growth within OpenGL / OpenGL ES. Metal will premiere later this year with iOS 8 while developers have early access beginning today.
Apple also announced today OS X Yosemite, their latest OS, which will ship later this calendar year.
UID
58282
帖子
1361
精华
0
积分
12181
交易积分
0
阅读权限
40
在线时间
8454 小时
注册时间
2006-6-26
最后登录
2024-11-6
查看详细资料
TOP
风间星魂
魔头
帖子
1361
精华
0
积分
12181
激骚
45 度
爱车
主机
相机
手机
注册时间
2006-6-26
发短消息
加为好友
当前离线
2
#
大
中
小
发表于 2014-6-3 11:58
显示全部帖子
swift看了一上午。
metal api我看了。很简洁。
这玩意的shader是c++11,而且可以直接include c++头文件。
#include <metal_stdlib>
#include <simd/simd.h>
#include "METLSharedTypes.h"
using namespace metal;
// variables in constant address space
constant float3 light_position = float3(0.0, 1.0, -1.0);
typedef struct
{
packed_float3 position;
packed_float3 normal;
} vertex_t;
struct ColorInOut {
float4 position [[position]];
half4 color;
};
// vertex shader function
vertex ColorInOut lighting_vertex(global vertex_t* vertex_array [[ buffer(0) ]],
constant METL::uniforms_t& uniforms [[ buffer(1) ]],
unsigned int vid [[ vertex_id ]])
{
ColorInOut out;
float4 in_position = float4(float3(vertex_array[vid].position), 1.0);
out.position = uniforms.modelview_projection_matrix * in_position;
float3 normal = vertex_array[vid].normal;
float4 eye_normal = normalize(uniforms.normal_matrix * float4(normal, 0.0));
float n_dot_l = dot(eye_normal.rgb, normalize(light_position));
n_dot_l = fmax(0.0, n_dot_l);
out.color = half4(uniforms.ambient_color + uniforms.diffuse_color * n_dot_l);
return out;
}
// fragment shader function
fragment half4 lighting_fragment(ColorInOut in [[stage_in]])
{
return in.color;
};
swift看了一上午,也会了。
[
本帖最后由 风间星魂 于 2014-6-3 14:48 编辑
]
UID
58282
帖子
1361
精华
0
积分
12181
交易积分
0
阅读权限
40
在线时间
8454 小时
注册时间
2006-6-26
最后登录
2024-11-6
查看详细资料
TOP
控制面板首页
密码修改
积分交易
积分记录
公众用户组
基本概况
版块排行
主题排行
发帖排行
积分排行
交易排行
在线时间
管理团队
管理统计