この記事は レイトレアドベントカレンダー2018 20日目の記事です。 導入 Möller-Trumbore intersection algorithm レイの表現 三角形の内部に存在する点の表現 交差判定の式を導く 交差判定の式を解く 実装について 各レンダラー、ライブラリにおける交差判定手法 Cycles Embree LuxCoreRender Mitsuba pbrt-v3 PhysX まとめ 参考文献 導入 初めて自作レンダラーを書いたとき、初めて画面に球が表示された感動を今でも忘れることができません。 皆さんも初めてレンダリングしたのは球ではありませんでしたか?[要出典] しかし、現実は非情です。悲しいことに世の中の多くの3Dモデルは球ではなく三角形ポリゴンの集合として表現されます。したがって3Dモデルをレンダリングするためには、レイと三角形の交差判定は避けては通れない道とい
概要: PhantomData<T> には3つの異なる役割があり、多くの場合は PhantomData<fn() -> T> の形で使うのが無難である。 はじめに PhantomData<T>は特殊な型で、中身を持たないにもかかわらず、型システム上は中身を持つかのように振る舞います。幽霊型 (phantom type) と関係はありますが、幽霊型そのものではないので注意が必要です。 PhantomData の基本的な使い方 幽霊型を使う場合や、何らかの理由で構造体の外部にある型を指定する必要がある場合を考えます。例えば、幽霊型で単位を区別する // U は Meter や Miles のような型が入るとする struct UnitFloat<U: Unit> { inner: f64, } や、外部にあるデータを参照する struct ExtVec<T> { // 中身はなし } のような
Russ Cox 19 December 2018 What a year! 2018 was a great year for the Go ecosystem, with package management as one of our major focuses. In February, we started a community-wide discussion about how to integrate package management directly into the Go toolchain, and in August we delivered the first rough implementation of that feature, called Go modules, in Go 1.11. The migration to Go modules will
The Blog of Scott Aaronson If you take nothing else from this blog: quantum computers won't solve hard problems instantly by just trying all solutions in parallel. Someone recently wrote that my blog is “too high on nerd whining content and too low on actual compsci content to be worth checking too regularly.” While that’s surely one of the mildest criticisms I’ve ever received, I hope that today
A great 2018, an even better 2019December 19, 2018 A year ago, Tokio was a very different library. It includes the (now deprecated) tokio-core which provided a future executor, I/O selector, and basic TCP/UDP types in a single library. It also included tokio-proto, but we won't talk about that. Over the past year, Tokio has grown to become Rust's asynchronous I/O platform. It has been adopted by a
Advent of Code 2018 Solutions December 2018 Python solutions to the daily coding puzzles, explained. Advent of Code is an Advent calendar of small programming puzzles for a variety of skill sets and skill levels that can be solved in any programming language you like. People use them as a speed contest, interview prep, company training, university coursework, practice problems, or to challenge eac
はじめに この記事では,パーサライブラリの1つである Trifecta を使用する場合の,パーサの作成方法を紹介する.また, 前回の記事 で紹介した recursion schemes for higher algebra を使用したAST表現を利用して,拡張可能な再帰的パーサの簡易的な作成手法を提案する. なお,以下のものを想定している. GHCのバージョン: 8.6.3 前提とするGHC拡張 BlockArguments ConstraintKinds DataKinds FlexibleInstances FlexibleContexts GeneralizedNewtypeDeriving GADTs LambdaCase MultiParamTypeClasses OverloadedLabels PolyKinds QuantifiedConstraints RankNType
タイトルの通り、C#のリフレクションのTIPS集です。 これから示すコードは、以下のusingディレクティブが前提のコードとなってます。 using System; using System.Collections; using System.Collections.Generic; using System.Linq; using System.Reflection; 普段はvarキーワードをよく使ってますが、ここでは変数の型がわかるようにvarキーワードの利用はできるだけ控えています。 それと、いくつかのコードはdynamic使ったほうが簡単に書ける場合もありますが、あくまでもリフレクションのサンプルということでご容赦を。 1. 型名から型情報を得る
こちらはPerl Advent Calendar 2018の18日目の記事になります。昨日は、Morichanさんによる、クラス図とPerlの対応付け でした。 さて、みなさん、日頃からワンライナーは使ってますでしょうか? これまで何度となく出てきたネタかとは思いますが、Perlによるワンライナーについて改めて整理してみます。 (…本記事は今年のYAPC::Okinawa 2018 ONNASONの「Perlを中心としたワンライナーあれこれ」の加筆・訂正版ですw) ワンライナーとは 「ワンライナー」とは、たった1行だけのプログラムです。 プログラムを書きたいが、 エディタを起動するほどの手間はかけたくない、というときに威力を発揮します。 日本語で言うところの、いわゆる一行野郎です。 最近界隈で人気のシェル芸的な分野などでも使えると思います。 基本編 perlでは、コマンドラインオプションの
この記事は BeProud Advent Calender 2018 の20日目の記事です。そのためいつもよりボリュームたっぷり、文体も丁寧にお送りします。 adventar.org 本記事ではPoetryを使ってパッケージ開発→PyPIへ登録するまでの流れを紹介します。 github.com プロジェクト作成からPyPI登録までわずか30秒 Poetry について 基本的な使い方 Poetry と Pipenv Pipenvは確かに便利だけど Pipenv から Poetry に乗り換える Poetry と Pyenv PEP517 と PEP518 Poetryの各種設定 venvの作成先をプロジェクト内にしたい TestPyPIへアップロードできるようにする TestPyPIのユーザー名とパスワードを設定する ここまでの設定 プロジェクトを用意する 新規作成 標準的なレイアウト sr
Firecracker enables you to deploy workloads in lightweight virtual machines, called microVMs, which provide enhanced security and workload isolation over traditional VMs, while enabling the speed and resource efficiency of containers. Firecracker was developed at Amazon Web Services to improve the customer experience of services like AWS Lambda and AWS Fargate . Firecracker is a virtual machine mo
actix_web は Actor モデルを採用した Rust の web frameworkです。 「Actor モデルでwebリクエストを捌く」仕組みを雑に想像すると、 TCPリスナーがHTTPリクエストをメールボックスに貯め、それをワーカーであるActorが拾ってレスポンスを返す? この仕組だと複数のActorで1つのメールボックスを共有する機構が必要になってきます。 しかし、Actorシステムを提供する actix にはこの機構はなさそうに見えます。 それに、恐らくこの仕組みでパフォーマンスを出すのは難しいでしょう。 そこで、actix_web がどのようにHTTPリクエストを捌いているのか、ソースコードを追ってみることにしました。 ※ 読み間違え等ありましたらコメント頂けると大変嬉しいです… 🙏 actix_web の構成 actix_web の依存関係を図示するとおおよそ下記
今年の 9 月あたりから、 Rust で Erlang の処理系を実装してみています。まともに試せるほど進んでないんですが、気分的に年内に一区切りつけたいので公開しておきます。リポジトリはこちら。 https://github.com/szktty/starlight みています、というのはもちろん思いつきだからです。なにぶん Erlang は適用分野がベリーハードなミッションクリティカルシステムしかなく、あらゆる性能やメリットが Erlang VM (BEAM) を超えなければ非公式処理系の用途はありません。 かといって最初から諦めてもいませんが、業務で Erlang に関わらなくなったら or 開発に疲れたら自然消滅すると思います。すでにわりと疲れている。 進捗状況「速くなるのか?」「軽量プロセスは?」などの疑問に興味津々の皆様、すいません。全然ご期待に応えられません。本当に同梱のごく
Home Blog Google Colaboratoryを用いた機械学習・深層学習の入門教材を無料公開(健康・医療向けデータを用いた実践編も含む) PFNのリサーチャの齋藤です。今年は色々な仕事に取り組みました。本記事では、日本メディカルAI学会が新しく始める公認資格へ向けたオンライン講義資料について書きます。 昨今、機械学習や深層学習といった技術はIT企業のみならず様々な分野で活用されるようになってきました。その一つに医療分野があります。しかし、忙しい臨床医・研究医・その他医療従事者の方々の中には機械学習や深層学習の可能性を知りつつも、なかなか自ら手を動かして学び、それを医学の研究や医療の現場へ生かしていく時間がとれない方もいらっしゃいます。その大きな理由の一部には、特に深層学習を実践的に用いる方法を学ぶ場合に必要となる計算機環境の用意および環境構築が難しいといった点があります。 そこ
本記事は、2018年インターンシップに参加された南條陽史さんによる寄稿です。 はじめまして。PFNの2018夏季インターンシップに参加した筑波大学の南條陽史です。 大学ではプログラム言語について研究しており, 型理論やプログラム検証に興味があります。 今回のインターンで“確率的なプログラムの型による静的検証”というテーマで研究開発を行いましたので、その紹介をいたします。 テーマの説明 確率的なプログラムの検証 確率的プログラム、というと色々な意味がありますがここでは確率分布からのサンプリングといった確率的な挙動を含むプログラムを指します。 研究の目的はこの確率的プログラムに対して“悪いことが起きる確率はいくら以下である”とか“よいことが起きる確率はいくら以上である”といった確率についての仕様検証をすることです。 確率的なプログラムの仕様検証の応用例として以下が挙げられます。 確率的に生じる
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く