This course is an introduction to digital typography rendering, providing key concepts of typography as well as introducing several computer graphics techniques to render text, from the oldest and most common techniques (texture based) to the latest methods taking full advantage of shaders with quasi-flawless rendering.
Grammarly AI-NLP Club #8 - Arabic Natural Language Processing: Challenges and...Grammarly
Speaker: Nizar Habash is an Associate Professor of Computer Science at New York University Abu Dhabi (NYUAD). Professor Habash’s research includes extensive work on machine translation, morphological analysis, and computational modeling of Arabic and its dialects. Professor Habash has been a principal investigator or co-investigator on over 20 grants. He has over 200 publications including a book titled “Introduction to Arabic Natural Language Processing.” His website is www.nizarhabash.com. He is the director of the NYUAD Computational Approaches to Modeling Language (CAMeL) Lab (www.camel-lab.com).
Summary: The Arabic language presents a number of challenges to researchers and developers of language technologies. Arabic is both morphologically rich and highly ambiguous; and it has a number of dialects that vary widely amongst themselves and with Standard Arabic. The dialects have no official spelling standards, and spelling and grammar errors are common in unedited Standard Arabic. In this talk, we present some of these challenges in detail and cover some of the ongoing efforts to address them with creative language technologies.
Outrageous ideas for Graph Databases
Almost every graph database vendor raised money in 2021. I am glad they did, because they are going to need the money. Our current Graph Databases are terrible and need a lot of work. There I said it. It's the ugly truth in our little niche industry. That's why despite waiting for over a decade for the "Year of the Graph" to come we still haven't set the world on fire. Graph databases can be painfully slow, they can't handle non-graph workloads, their APIs are clunky, their query languages are either hard to learn or hard to scale. Most graph projects require expert shepherding to succeed. 80% of the work takes 20% of the time, but that last 20% takes forever. The graph database vendors optimize for new users, not grizzly veterans. They optimize for sales not solutions. Come listen to a Rant by an industry OG on where we could go from here if we took the time to listen to the users that haven't given up on us yet.
Grammarly AI-NLP Club #8 - Arabic Natural Language Processing: Challenges and...Grammarly
Speaker: Nizar Habash is an Associate Professor of Computer Science at New York University Abu Dhabi (NYUAD). Professor Habash’s research includes extensive work on machine translation, morphological analysis, and computational modeling of Arabic and its dialects. Professor Habash has been a principal investigator or co-investigator on over 20 grants. He has over 200 publications including a book titled “Introduction to Arabic Natural Language Processing.” His website is www.nizarhabash.com. He is the director of the NYUAD Computational Approaches to Modeling Language (CAMeL) Lab (www.camel-lab.com).
Summary: The Arabic language presents a number of challenges to researchers and developers of language technologies. Arabic is both morphologically rich and highly ambiguous; and it has a number of dialects that vary widely amongst themselves and with Standard Arabic. The dialects have no official spelling standards, and spelling and grammar errors are common in unedited Standard Arabic. In this talk, we present some of these challenges in detail and cover some of the ongoing efforts to address them with creative language technologies.
Outrageous ideas for Graph Databases
Almost every graph database vendor raised money in 2021. I am glad they did, because they are going to need the money. Our current Graph Databases are terrible and need a lot of work. There I said it. It's the ugly truth in our little niche industry. That's why despite waiting for over a decade for the "Year of the Graph" to come we still haven't set the world on fire. Graph databases can be painfully slow, they can't handle non-graph workloads, their APIs are clunky, their query languages are either hard to learn or hard to scale. Most graph projects require expert shepherding to succeed. 80% of the work takes 20% of the time, but that last 20% takes forever. The graph database vendors optimize for new users, not grizzly veterans. They optimize for sales not solutions. Come listen to a Rant by an industry OG on where we could go from here if we took the time to listen to the users that haven't given up on us yet.
김상균(curt.k) / kakaomobility corp.(데이터랩)
---
맵매칭은 도로 네트워크에 차량의 위치 측정치를 매핑하여 정확한 모빌리티 사용자의 위치와 이동경로를 추정하는 과정으로, 내비게이션 길안내, 택시/대리 등의 이동경로 기반한 요금 산정, 교통흐름 분석, 이동 방향 결정 등에 활용된다.
GPS 위치가 정확하고 업데이트 주기가 빠른 경우 GPS를 가까운 도로 네트워크 상에 매핑만 하면 되지만, 실 서비스에서는 실내, 도심, 터널 등의 환경에서 GPS 위치가 부정확하고, 수 십 초 이상 수신기 되지 않는 상황이 빈번하게 발생되어 확률 모델 적용이 필요하다.
발표에서는 위 같은 상황에 대응 가능하도록 자체 개발된 Hidden Markov Model(HMM) 기반 맵매칭 알고리즘과 일평균 수백만 이동 경로에 적용된 서비스 시스템에 대해 설명하고, 실 데이터 처리 분석 결과를 공유한다.
An Introduction to TensorFlow architectureMani Goswami
Introduces you to the internals of TensorFlow and deep dives into distributed version of TensorFlow. Refer to https://github.com/manigoswami/tensorflow-examples for examples.
The past few years have seen a sharp increase in the complexity of rendering algorithms used in modern game engines. Large portions of the rendering work are increasingly written in GPU computing languages, and decoupled from the conventional “one-to-one” pipeline stages for which shading languages were designed. Following Tim Foley’s talk from SIGGRAPH 2016’s Open Problems course on shading language directions, we explore example rendering algorithms that we want to express in a composable, reusable and performance-portable manner. We argue that a few key constraints in GPU computing languages inhibit these goals, some of which are rooted in hardware limitations. We conclude with a call to action detailing specific improvements we would like to see in GPU compute languages, as well as the underlying graphics hardware.
This talk was originally given at SIGGRAPH 2017 by Andrew Lauritzen (EA SEED) for the Open Problems in Real-Time Rendering course.
많은 수의 PS러들이 개발자로 취업을 원하고, 개발자로 근무하고 있습니다.
따라서 여러 회사의 개발자 채용 프로세스를 둘러보고,
각 채용 프로세스별로 PS가 어떤 식으로 작용하는 지에 대하여 알아볼 예정입니다.
### 백발백준 (BOJ dlstj0923)
코포 민트/솔브드 플레에 불과한 가성비 최악의 15년차 PS러 이면서,
8번째 회사를 신입으로 들어간 괴상한 경력의 소유자
A description of the next-gen rendering technique called Triangle Visibility Buffer. It offers up to 10x - 20x geometry compared to Deferred rendering and much higher resolution. Generally it aligns better with memory access patterns in modern GPUs compared to Deferred Lighting like Clustered Deferred Lighting etc.
This session presents a detailed programmer oriented overview of our SPU based shading system implemented in DICE's Frostbite 2 engine and how it enables more visually rich environments in BATTLEFIELD 3 and better performance over traditional GPU-only based renderers. We explain in detail how our SPU Tile-based deferred shading system is implemented, and how it supports rich material variety, High Dynamic Range Lighting, and large amounts of light sources of different types through an extensive set of culling, occlusion and optimization techniques.
Graph in Apache Cassandra. The World’s Most Scalable Graph DatabaseConnected Data World
Graph databases are everywhere right now. The explosive growth in the graph market coupled with the hype of solving graph problems is causing both excitement and confusion. From labeled property graphs to RDF to pure graph analytics to multi-model databases, the breadth of graph offerings is staggering.
The good news? DataStax has been listening—and building.
In this session, we’ll show you how DataStax Graph is architected into Apache Cassandra to deliver the world’s most scalable graph database. You’ll learn how to integrate Cassandra data into mixed workloads, design scalable property graphs, and even turn your existing tables into graphs.
With your high throughput time series data distributed next to its relationships, what will you build next?
Writing good acceptance criteria is one of the keys to effective software delivery. But it’s hard. In this workshop, you will learn about Feature Mapping, a new technique and easy that can help teams write higher quality acceptance criteria more easily. Feature Mapping is an excellent way to build a deep shared understanding of a story's requirements and clear a path to a smooth implementation of automated acceptance tests.
Presented at the GPU Technology Conference 2012 in San Jose, California.
Tuesday, May 15, 2012.
Standards such as Scalable Vector Graphics (SVG), PostScript, TrueType outline fonts, and immersive web content such as Flash depend on a resolution-independent 2D rendering paradigm that GPUs have not traditionally accelerated. This tutorial explains a new opportunity to greatly accelerate vector graphics, path rendering, and immersive web standards using the GPU. By attending, you will learn how to write OpenGL applications that accelerate the full range of path rendering functionality. Not only will you learn how to render sophisticated 2D graphics with OpenGL, you will learn to mix such resolution-independent 2D rendering with 3D rendering and do so at dynamic, real-time rates.
김상균(curt.k) / kakaomobility corp.(데이터랩)
---
맵매칭은 도로 네트워크에 차량의 위치 측정치를 매핑하여 정확한 모빌리티 사용자의 위치와 이동경로를 추정하는 과정으로, 내비게이션 길안내, 택시/대리 등의 이동경로 기반한 요금 산정, 교통흐름 분석, 이동 방향 결정 등에 활용된다.
GPS 위치가 정확하고 업데이트 주기가 빠른 경우 GPS를 가까운 도로 네트워크 상에 매핑만 하면 되지만, 실 서비스에서는 실내, 도심, 터널 등의 환경에서 GPS 위치가 부정확하고, 수 십 초 이상 수신기 되지 않는 상황이 빈번하게 발생되어 확률 모델 적용이 필요하다.
발표에서는 위 같은 상황에 대응 가능하도록 자체 개발된 Hidden Markov Model(HMM) 기반 맵매칭 알고리즘과 일평균 수백만 이동 경로에 적용된 서비스 시스템에 대해 설명하고, 실 데이터 처리 분석 결과를 공유한다.
An Introduction to TensorFlow architectureMani Goswami
Introduces you to the internals of TensorFlow and deep dives into distributed version of TensorFlow. Refer to https://github.com/manigoswami/tensorflow-examples for examples.
The past few years have seen a sharp increase in the complexity of rendering algorithms used in modern game engines. Large portions of the rendering work are increasingly written in GPU computing languages, and decoupled from the conventional “one-to-one” pipeline stages for which shading languages were designed. Following Tim Foley’s talk from SIGGRAPH 2016’s Open Problems course on shading language directions, we explore example rendering algorithms that we want to express in a composable, reusable and performance-portable manner. We argue that a few key constraints in GPU computing languages inhibit these goals, some of which are rooted in hardware limitations. We conclude with a call to action detailing specific improvements we would like to see in GPU compute languages, as well as the underlying graphics hardware.
This talk was originally given at SIGGRAPH 2017 by Andrew Lauritzen (EA SEED) for the Open Problems in Real-Time Rendering course.
많은 수의 PS러들이 개발자로 취업을 원하고, 개발자로 근무하고 있습니다.
따라서 여러 회사의 개발자 채용 프로세스를 둘러보고,
각 채용 프로세스별로 PS가 어떤 식으로 작용하는 지에 대하여 알아볼 예정입니다.
### 백발백준 (BOJ dlstj0923)
코포 민트/솔브드 플레에 불과한 가성비 최악의 15년차 PS러 이면서,
8번째 회사를 신입으로 들어간 괴상한 경력의 소유자
A description of the next-gen rendering technique called Triangle Visibility Buffer. It offers up to 10x - 20x geometry compared to Deferred rendering and much higher resolution. Generally it aligns better with memory access patterns in modern GPUs compared to Deferred Lighting like Clustered Deferred Lighting etc.
This session presents a detailed programmer oriented overview of our SPU based shading system implemented in DICE's Frostbite 2 engine and how it enables more visually rich environments in BATTLEFIELD 3 and better performance over traditional GPU-only based renderers. We explain in detail how our SPU Tile-based deferred shading system is implemented, and how it supports rich material variety, High Dynamic Range Lighting, and large amounts of light sources of different types through an extensive set of culling, occlusion and optimization techniques.
Graph in Apache Cassandra. The World’s Most Scalable Graph DatabaseConnected Data World
Graph databases are everywhere right now. The explosive growth in the graph market coupled with the hype of solving graph problems is causing both excitement and confusion. From labeled property graphs to RDF to pure graph analytics to multi-model databases, the breadth of graph offerings is staggering.
The good news? DataStax has been listening—and building.
In this session, we’ll show you how DataStax Graph is architected into Apache Cassandra to deliver the world’s most scalable graph database. You’ll learn how to integrate Cassandra data into mixed workloads, design scalable property graphs, and even turn your existing tables into graphs.
With your high throughput time series data distributed next to its relationships, what will you build next?
Writing good acceptance criteria is one of the keys to effective software delivery. But it’s hard. In this workshop, you will learn about Feature Mapping, a new technique and easy that can help teams write higher quality acceptance criteria more easily. Feature Mapping is an excellent way to build a deep shared understanding of a story's requirements and clear a path to a smooth implementation of automated acceptance tests.
Presented at the GPU Technology Conference 2012 in San Jose, California.
Tuesday, May 15, 2012.
Standards such as Scalable Vector Graphics (SVG), PostScript, TrueType outline fonts, and immersive web content such as Flash depend on a resolution-independent 2D rendering paradigm that GPUs have not traditionally accelerated. This tutorial explains a new opportunity to greatly accelerate vector graphics, path rendering, and immersive web standards using the GPU. By attending, you will learn how to write OpenGL applications that accelerate the full range of path rendering functionality. Not only will you learn how to render sophisticated 2D graphics with OpenGL, you will learn to mix such resolution-independent 2D rendering with 3D rendering and do so at dynamic, real-time rates.
Brain research has made tremendous progress over the last few decades in nearly all areas of investigation and yet, the comprehension of cognition still eludes us because most high-level functions, such as decision making, results from the complex and dynamic interaction between several structures. On the one hand we have a fragmented collection of computational models whose unification is out of reach, on the other hand we have holistic approaches whose complexity obliterates any hope of comprehension. Informed by neuroscience and guided by philosophy, I propose to build the foundations of a research program in computational neuroscience in order to explain how cognition develop in most vertebrates, while guaranteeing its intelligibility.
ReScience is a peer-reviewed journal that targets computational research and encourages the explicit replication of already published research, promoting new and open-source implementations in order to ensure that the original research is reproducible.
To achieve this goal, the whole publishing chain is radically different from other traditional scientific journals. ReScience lives on GitHub where each new implementation of a computational study is made available together with comments, explanations and tests. Each submission takes the form of a pull request that is publicly reviewed and tested in order to guarantee that any researcher can re-use it. If you ever replicated computational results from the literature in your research, ReScience is the perfect place to publish your new implementation.
" ...we managed to explicitly dissociate reinforcement learning from Hebbian learning and demonstrated covert learning inside the basal ganglia. These results suggest that a behavioral decision results from both the cooperation (acquisition) and competition (expression) of two distinct but entangled memory systems, the goal-directed system and the habit system that may represent the two ends of the same graded phenomenon."
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...DanBrown980551
Do you want to learn how to model and simulate an electrical network from scratch in under an hour?
Then welcome to this PowSyBl workshop, hosted by Rte, the French Transmission System Operator (TSO)!
During the webinar, you will discover the PowSyBl ecosystem as well as handle and study an electrical network through an interactive Python notebook.
PowSyBl is an open source project hosted by LF Energy, which offers a comprehensive set of features for electrical grid modelling and simulation. Among other advanced features, PowSyBl provides:
- A fully editable and extendable library for grid component modelling;
- Visualization tools to display your network;
- Grid simulation tools, such as power flows, security analyses (with or without remedial actions) and sensitivity analyses;
The framework is mostly written in Java, with a Python binding so that Python developers can access PowSyBl functionalities as well.
What you will learn during the webinar:
- For beginners: discover PowSyBl's functionalities through a quick general presentation and the notebook, without needing any expert coding skills;
- For advanced developers: master the skills to efficiently apply PowSyBl functionalities to your real-world scenarios.
UiPath Test Automation using UiPath Test Suite series, part 4DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 4. In this session, we will cover Test Manager overview along with SAP heatmap.
The UiPath Test Manager overview with SAP heatmap webinar offers a concise yet comprehensive exploration of the role of a Test Manager within SAP environments, coupled with the utilization of heatmaps for effective testing strategies.
Participants will gain insights into the responsibilities, challenges, and best practices associated with test management in SAP projects. Additionally, the webinar delves into the significance of heatmaps as a visual aid for identifying testing priorities, areas of risk, and resource allocation within SAP landscapes. Through this session, attendees can expect to enhance their understanding of test management principles while learning practical approaches to optimize testing processes in SAP environments using heatmap visualization techniques
What will you get from this session?
1. Insights into SAP testing best practices
2. Heatmap utilization for testing
3. Optimization of testing processes
4. Demo
Topics covered:
Execution from the test manager
Orchestrator execution result
Defect reporting
SAP heatmap example with demo
Speaker:
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
A tale of scale & speed: How the US Navy is enabling software delivery from l...sonjaschweigert1
Rapid and secure feature delivery is a goal across every application team and every branch of the DoD. The Navy’s DevSecOps platform, Party Barge, has achieved:
- Reduction in onboarding time from 5 weeks to 1 day
- Improved developer experience and productivity through actionable findings and reduction of false positives
- Maintenance of superior security standards and inherent policy enforcement with Authorization to Operate (ATO)
Development teams can ship efficiently and ensure applications are cyber ready for Navy Authorizing Officials (AOs). In this webinar, Sigma Defense and Anchore will give attendees a look behind the scenes and demo secure pipeline automation and security artifacts that speed up application ATO and time to production.
We will cover:
- How to remove silos in DevSecOps
- How to build efficient development pipeline roles and component templates
- How to deliver security artifacts that matter for ATO’s (SBOMs, vulnerability reports, and policy evidence)
- How to streamline operations with automated policy checks on container images
In his public lecture, Christian Timmerer provides insights into the fascinating history of video streaming, starting from its humble beginnings before YouTube to the groundbreaking technologies that now dominate platforms like Netflix and ORF ON. Timmerer also presents provocative contributions of his own that have significantly influenced the industry. He concludes by looking at future challenges and invites the audience to join in a discussion.
Accelerate your Kubernetes clusters with Varnish CachingThijs Feryn
A presentation about the usage and availability of Varnish on Kubernetes. This talk explores the capabilities of Varnish caching and shows how to use the Varnish Helm chart to deploy it to Kubernetes.
This presentation was delivered at K8SUG Singapore. See https://feryn.eu/presentations/accelerate-your-kubernetes-clusters-with-varnish-caching-k8sug-singapore-28-2024 for more details.
Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™UiPathCommunity
In questo evento online gratuito, organizzato dalla Community Italiana di UiPath, potrai esplorare le nuove funzionalità di Autopilot, il tool che integra l'Intelligenza Artificiale nei processi di sviluppo e utilizzo delle Automazioni.
📕 Vedremo insieme alcuni esempi dell'utilizzo di Autopilot in diversi tool della Suite UiPath:
Autopilot per Studio Web
Autopilot per Studio
Autopilot per Apps
Clipboard AI
GenAI applicata alla Document Understanding
👨🏫👨💻 Speakers:
Stefano Negro, UiPath MVPx3, RPA Tech Lead @ BSP Consultant
Flavio Martinelli, UiPath MVP 2023, Technical Account Manager @UiPath
Andrei Tasca, RPA Solutions Team Lead @NTT Data
GraphRAG is All You need? LLM & Knowledge GraphGuy Korland
Guy Korland, CEO and Co-founder of FalkorDB, will review two articles on the integration of language models with knowledge graphs.
1. Unifying Large Language Models and Knowledge Graphs: A Roadmap.
https://arxiv.org/abs/2306.08302
2. Microsoft Research's GraphRAG paper and a review paper on various uses of knowledge graphs:
https://www.microsoft.com/en-us/research/blog/graphrag-unlocking-llm-discovery-on-narrative-private-data/
Pushing the limits of ePRTC: 100ns holdover for 100 daysAdtran
At WSTS 2024, Alon Stern explored the topic of parametric holdover and explained how recent research findings can be implemented in real-world PNT networks to achieve 100 nanoseconds of accuracy for up to 100 days.
The Art of the Pitch: WordPress Relationships and SalesLaura Byrne
Clients don’t know what they don’t know. What web solutions are right for them? How does WordPress come into the picture? How do you make sure you understand scope and timeline? What do you do if sometime changes?
All these questions and more will be explored as we talk about matching clients’ needs with what your agency offers without pulling teeth or pulling your hair out. Practical tips, and strategies for successful relationship building that leads to closing the deal.
Welcome to the first live UiPath Community Day Dubai! Join us for this unique occasion to meet our local and global UiPath Community and leaders. You will get a full view of the MEA region's automation landscape and the AI Powered automation technology capabilities of UiPath. Also, hosted by our local partners Marc Ellis, you will enjoy a half-day packed with industry insights and automation peers networking.
📕 Curious on our agenda? Wait no more!
10:00 Welcome note - UiPath Community in Dubai
Lovely Sinha, UiPath Community Chapter Leader, UiPath MVPx3, Hyper-automation Consultant, First Abu Dhabi Bank
10:20 A UiPath cross-region MEA overview
Ashraf El Zarka, VP and Managing Director MEA, UiPath
10:35: Customer Success Journey
Deepthi Deepak, Head of Intelligent Automation CoE, First Abu Dhabi Bank
11:15 The UiPath approach to GenAI with our three principles: improve accuracy, supercharge productivity, and automate more
Boris Krumrey, Global VP, Automation Innovation, UiPath
12:15 To discover how Marc Ellis leverages tech-driven solutions in recruitment and managed services.
Brendan Lingam, Director of Sales and Business Development, Marc Ellis
Enhancing Performance with Globus and the Science DMZGlobus
ESnet has led the way in helping national facilities—and many other institutions in the research community—configure Science DMZs and troubleshoot network issues to maximize data transfer performance. In this talk we will present a summary of approaches and tips for getting the most out of your network infrastructure using Globus Connect Server.
Generative AI Deep Dive: Advancing from Proof of Concept to ProductionAggregage
Join Maher Hanafi, VP of Engineering at Betterworks, in this new session where he'll share a practical framework to transform Gen AI prototypes into impactful products! He'll delve into the complexities of data collection and management, model selection and optimization, and ensuring security, scalability, and responsible use.
Climate Impact of Software Testing at Nordic Testing DaysKari Kakkonen
My slides at Nordic Testing Days 6.6.2024
Climate impact / sustainability of software testing discussed on the talk. ICT and testing must carry their part of global responsibility to help with the climat warming. We can minimize the carbon footprint but we can also have a carbon handprint, a positive impact on the climate. Quality characteristics can be added with sustainability, and then measured continuously. Test environments can be used less, and in smaller scale and on demand. Test techniques can be used in optimizing or minimizing number of tests. Test automation can be used to speed up testing.
2. DIGITAL TYPOGRAPHY
N. ROUGIER (INRIA) & B. ESFAHBOD (GOOGLE)
/60
INTRODUCTION
• Digital Typography
• Font Types & Formats
• Text Rendering Pipeline
PART I : TEXTURE BASED
• Rasterization
• Fast & Versatile (but ugly)
• Fast & Beaufitul (but only 2D)
PART II : DISTANCE BASED
• Signed Distance Fields
• Single Channel
• Arc approximation
• Multiple Channels
PART III : GEOMETRY BASED
• Bézier curves & glyphs
• GPU friendly
• GPU only
CONCLUSION
• Beyond this course
• Questions & answers
INTRODUCTION
2
A specimen sheet of typefaces and languages,
by William Caslon I, letter founder; dated 1734.
Typography is the art of arranging type to make written
language legible, readable, and appealing when
displayed.
However, for the neophyte, typography is mostly
apprehended as the juxtaposition of characters
displayed on the screen while for the expert,
typography means typeface, scripts, unicode, glyphs,
ascender, descender, tracking, hinting, kerning,
shaping, weight, slant, etc.
Typography is actually much more than the mere
rendering of glyphs and involves many different
concepts.
3. DIGITAL TYPOGRAPHY
N. ROUGIER (INRIA) & B. ESFAHBOD (GOOGLE)
/60
INTRODUCTION
• Digital Typography
• Font Types & Formats
• Text Rendering Pipeline
PART I : TEXTURE BASED
• Rasterization
• Fast & Versatile (but ugly)
• Fast & Beaufitul (but only 2D)
PART II : DISTANCE BASED
• Signed Distance Fields
• Single Channel
• Arc approximation
• Multiple Channels
PART III : GEOMETRY BASED
• Bézier curves & glyphs
• GPU friendly
• GPU only
CONCLUSION
• Beyond this course
• Questions & answers
NOPE, NOT ARABIC!
3
From “Nope, not Arabic” tumbler (https://nopenotarabic.tumblr.com/)
4. DIGITAL TYPOGRAPHY
N. ROUGIER (INRIA) & B. ESFAHBOD (GOOGLE)
/60
INTRODUCTION
• Digital Typography
• Font Types & Formats
• Text Rendering Pipeline
PART I : TEXTURE BASED
• Rasterization
• Fast & Versatile (but ugly)
• Fast & Beaufitul (but only 2D)
PART II : DISTANCE BASED
• Signed Distance Fields
• Single Channel
• Arc approximation
• Multiple Channels
PART III : GEOMETRY BASED
• Bézier curves & glyphs
• GPU friendly
• GPU only
CONCLUSION
• Beyond this course
• Questions & answers
I UNICODE
4
?
5. DIGITAL TYPOGRAPHY
N. ROUGIER (INRIA) & B. ESFAHBOD (GOOGLE)
/60
INTRODUCTION
• Digital Typography
• Font Types & Formats
• Text Rendering Pipeline
PART I : TEXTURE BASED
• Rasterization
• Fast & Versatile (but ugly)
• Fast & Beaufitul (but only 2D)
PART II : DISTANCE BASED
• Signed Distance Fields
• Single Channel
• Arc approximation
• Multiple Channels
PART III : GEOMETRY BASED
• Bézier curves & glyphs
• GPU friendly
• GPU only
CONCLUSION
• Beyond this course
• Questions & answers
BAD KERNING (keming)
5
Disaster is a space away… (FLICK, click, CLINT, FINAL)
click versus dick Apple added an extra space
Rockstar game removed the extra space
6. DIGITAL TYPOGRAPHY
N. ROUGIER (INRIA) & B. ESFAHBOD (GOOGLE)
/60
INTRODUCTION
• Digital Typography
• Font Types & Formats
• Text Rendering Pipeline
PART I : TEXTURE BASED
• Rasterization
• Fast & Versatile (but ugly)
• Fast & Beaufitul (but only 2D)
PART II : DISTANCE BASED
• Signed Distance Fields
• Single Channel
• Arc approximation
• Multiple Channels
PART III : GEOMETRY BASED
• Bézier curves & glyphs
• GPU friendly
• GPU only
CONCLUSION
• Beyond this course
• Questions & answers
GIBBERISH CAN BE PRETTY…
6
The Matrix code is actually a sushi recipe…
7. DIGITAL TYPOGRAPHY
N. ROUGIER (INRIA) & B. ESFAHBOD (GOOGLE)
/60
INTRODUCTION
• Digital Typography
• Font Types & Formats
• Text Rendering Pipeline
PART I : TEXTURE BASED
• Rasterization
• Fast & Versatile (but ugly)
• Fast & Beaufitul (but only 2D)
PART II : DISTANCE BASED
• Signed Distance Fields
• Single Channel
• Arc approximation
• Multiple Channels
PART III : GEOMETRY BASED
• Bézier curves & glyphs
• GPU friendly
• GPU only
CONCLUSION
• Beyond this course
• Questions & answers
DIGITAL TYPOGRAPHY
7
Typography is a vast and complex domain with many rules.
You might consider to enforce some basic rules.
The Anatomy of Typography - Janie Kliever
8. DIGITAL TYPOGRAPHY
N. ROUGIER (INRIA) & B. ESFAHBOD (GOOGLE)
/60
INTRODUCTION
• Digital Typography
• Font Types & Formats
• Text Rendering Pipeline
PART I : TEXTURE BASED
• Rasterization
• Fast & Versatile (but ugly)
• Fast & Beaufitul (but only 2D)
PART II : DISTANCE BASED
• Signed Distance Fields
• Single Channel
• Arc approximation
• Multiple Channels
PART III : GEOMETRY BASED
• Bézier curves & glyphs
• GPU friendly
• GPU only
CONCLUSION
• Beyond this course
• Questions & answers
UNICODE
8
Unicode is a computing industry standard for the
consistent encoding, representation, and handling
of text expressed in most of the world's writing
systems. The latest version contains a repertoire
of 136,755 characters covering 139 modern and
historic scripts, as well as multiple symbol sets.
UTF-8 (Unicode Transformation Format, RFC
3629) is a variable width character encoding
capable of encoding all 1,112,064 valid code
points in Unicode using one to four 8-bit bytes.
XKCD #1953
9. DIGITAL TYPOGRAPHY
N. ROUGIER (INRIA) & B. ESFAHBOD (GOOGLE)
/60
INTRODUCTION
• Digital Typography
• Font Types & Formats
• Text Rendering Pipeline
PART I : TEXTURE BASED
• Rasterization
• Fast & Versatile (but ugly)
• Fast & Beaufitul (but only 2D)
PART II : DISTANCE BASED
• Signed Distance Fields
• Single Channel
• Arc approximation
• Multiple Channels
PART III : GEOMETRY BASED
• Bézier curves & glyphs
• GPU friendly
• GPU only
CONCLUSION
• Beyond this course
• Questions & answers
FAMOUS FONTS
9 1931
1495 17981757
1926
1734
19821957
10. DIGITAL TYPOGRAPHY
N. ROUGIER (INRIA) & B. ESFAHBOD (GOOGLE)
/60
INTRODUCTION
• Digital Typography
• Font Types & Formats
• Text Rendering Pipeline
PART I : TEXTURE BASED
• Rasterization
• Fast & Versatile (but ugly)
• Fast & Beaufitul (but only 2D)
PART II : DISTANCE BASED
• Signed Distance Fields
• Single Channel
• Arc approximation
• Multiple Channels
PART III : GEOMETRY BASED
• Bézier curves & glyphs
• GPU friendly
• GPU only
CONCLUSION
• Beyond this course
• Questions & answers
ONE FONT TO RULE’EM ALL
10
When text is rendered by a computer, sometimes characters are displayed as “tofu”. They are little
boxes to indicate your device doesn’t have a font to display the text. Google has been developing a
font family called Noto, which aims to support all languages with a harmonious look and feel.
Noto is Google’s answer to tofu.
11. DIGITAL TYPOGRAPHY
N. ROUGIER (INRIA) & B. ESFAHBOD (GOOGLE)
/60
INTRODUCTION
• Digital Typography
• Font Types & Formats
• Text Rendering Pipeline
PART I : TEXTURE BASED
• Rasterization
• Fast & Versatile (but ugly)
• Fast & Beaufitul (but only 2D)
PART II : DISTANCE BASED
• Signed Distance Fields
• Single Channel
• Arc approximation
• Multiple Channels
PART III : GEOMETRY BASED
• Bézier curves & glyphs
• GPU friendly
• GPU only
CONCLUSION
• Beyond this course
• Questions & answers
ITSY BITSY BITMAP FONTS
11
12. DIGITAL TYPOGRAPHY
N. ROUGIER (INRIA) & B. ESFAHBOD (GOOGLE)
/60
INTRODUCTION
• Digital Typography
• Font Types & Formats
• Text Rendering Pipeline
PART I : TEXTURE BASED
• Rasterization
• Fast & Versatile (but ugly)
• Fast & Beaufitul (but only 2D)
PART II : DISTANCE BASED
• Signed Distance Fields
• Single Channel
• Arc approximation
• Multiple Channels
PART III : GEOMETRY BASED
• Bézier curves & glyphs
• GPU friendly
• GPU only
CONCLUSION
• Beyond this course
• Questions & answers
BASIC TYPOGRAPHY
12
Kerning is the process of adjusting
the spacing between characters in
a proportional font.
A ligature occurs where two or more graphemes
or letters are joined as a single glyph.
Hinting is the use of instructions to
adjust the display of a font so that
it lines up with a rasterized grid. A various number of face metrics are defined
for all glyphs in a given font.
A diacritic mark is a glyph added to a letter,
or basic glyph.
13. DIGITAL TYPOGRAPHY
N. ROUGIER (INRIA) & B. ESFAHBOD (GOOGLE)
/60
INTRODUCTION
• Digital Typography
• Font Types & Formats
• Text Rendering Pipeline
PART I : TEXTURE BASED
• Rasterization
• Fast & Versatile (but ugly)
• Fast & Beaufitul (but only 2D)
PART II : DISTANCE BASED
• Signed Distance Fields
• Single Channel
• Arc approximation
• Multiple Channels
PART III : GEOMETRY BASED
• Bézier curves & glyphs
• GPU friendly
• GPU only
CONCLUSION
• Beyond this course
• Questions & answers
ADVANCED TYPOGRAPHY
13
Text shaping is the process of converting Unicode
text to glyph indices and positions.
द ◌् ध ◌् र ◌् य
The set of rules applied to produce the correct order at the time
of display are described by the Unicode Bidirectional Algorithm.
The title is الويب معايير مفتاح in Arabic.
द्ध्र्यComplex text layout (CTL) refers to
the typesetting of writing systems in
which the shape or positioning of a
grapheme depends on its relation to
other graphemes (wikipedia).Stylistic alternate allows to replace
a glyph by some variant.
Etc.
14. DIGITAL TYPOGRAPHY
N. ROUGIER (INRIA) & B. ESFAHBOD (GOOGLE)
/60
INTRODUCTION
• Digital Typography
• Font Types & Formats
• Text Rendering Pipeline
PART I : TEXTURE BASED
• Rasterization
• Fast & Versatile (but ugly)
• Fast & Beaufitul (but only 2D)
PART II : DISTANCE BASED
• Signed Distance Fields
• Single Channel
• Arc approximation
• Multiple Channels
PART III : GEOMETRY BASED
• Bézier curves & glyphs
• GPU friendly
• GPU only
CONCLUSION
• Beyond this course
• Questions & answers
ADVANCED TYPOGRAPHY
14
Anatomy of the Hindi Font by Aditya Dipankar.
15. DIGITAL TYPOGRAPHY
N. ROUGIER (INRIA) & B. ESFAHBOD (GOOGLE)
/60
INTRODUCTION
• Digital Typography
• Font Types & Formats
• Text Rendering Pipeline
PART I : TEXTURE BASED
• Rasterization
• Fast & Versatile (but ugly)
• Fast & Beaufitul (but only 2D)
PART II : DISTANCE BASED
• Signed Distance Fields
• Single Channel
• Arc approximation
• Multiple Channels
PART III : GEOMETRY BASED
• Bézier curves & glyphs
• GPU friendly
• GPU only
CONCLUSION
• Beyond this course
• Questions & answers
OTHER FORMS OF COMPLEX LAYOUT
15
kX
n=1
1
n
>
Z k+1
1
1
x
dx = ln(k + 1)
1X
n=0
( 1)n
2n + 1
= 1
1
3
+
1
5
1
7
+ · · · =
⇡
4
Z b
a
f(x)dx = F(b) F(a)
f0
(a) = lim
h!0
f(a + h) f(a)
h
(z/w) = ¯z/ ¯w
r = |z| =
p
x2 + y2
1 2
3 4
0 1
0 0
=
0 1
0 3<latexit sha1_base64="6IszZoljZhpuB0XoQyi7/Qt6ekc=">AAADzXicfVNdb9MwFM1aPkb52uCRF8M0SFRti7uh8RI0gTQhXhgS+5DmpnJcZ7WaOCF2WFPPvPL/eOOZP8JNG6mjQ1iK7s095x6fXDtRngilff/XSqt96/adu6v3OvcfPHz0eG39yYnKyoLxY5YlWXEWUcUTIfmxFjrhZ3nBaRol/DQav6/x02+8UCKTX3SV835KL6SIBaMaSoP1ld9ElenAyADbcIxIXFBmsDXSoreICKkHODTjLrYLaGLRcIICRBLpAuIR0tnsNCpQ9m0IfbGumg53C3sh6FnTk7VOgDDaWqjtWtRdvL2217H9GcaGmVb1frMyyYU1e3a+ae2PhhEiz1HsTry5r0M38kDl0KVza/EryAKSCDA4IjoDh3Op2KXdkbcFwbNm1EhmMK16mMad7lx6tV0S0cJM7c4sXjY0zSda6SrhqAiuplcBUV8LbSZhr1uFvYYT8QshTZRSXQgYGkYvUY8QtAtxDyLhcrhAl9k+sDCw6ugvs4P/0neX6YO1DX/bny10M8FNsuE062iw9pMMM1amXGqWUKXOsZ/rvqGFFizhtkNKxXPKxvSCn0MqacpV38xuo0WbUBmiOCvgkRrNqtc7DE2VqtIImOBvpJaxuvgv7LzU8Zu+ETIvNZdsvlFcJgiOtL7aaCgKznRSQUJZIcArYiMKJ63hB+jAEPDyJ99MTnrb2N/Gn/c2Dt4141h1njkvHNfBzr5z4Hxwjpxjh7U+tvJW1Zq2P7XL9lX7+5zaWml6njp/rfaPPyyXLLA=</latexit><latexit sha1_base64="6IszZoljZhpuB0XoQyi7/Qt6ekc=">AAADzXicfVNdb9MwFM1aPkb52uCRF8M0SFRti7uh8RI0gTQhXhgS+5DmpnJcZ7WaOCF2WFPPvPL/eOOZP8JNG6mjQ1iK7s095x6fXDtRngilff/XSqt96/adu6v3OvcfPHz0eG39yYnKyoLxY5YlWXEWUcUTIfmxFjrhZ3nBaRol/DQav6/x02+8UCKTX3SV835KL6SIBaMaSoP1ld9ElenAyADbcIxIXFBmsDXSoreICKkHODTjLrYLaGLRcIICRBLpAuIR0tnsNCpQ9m0IfbGumg53C3sh6FnTk7VOgDDaWqjtWtRdvL2217H9GcaGmVb1frMyyYU1e3a+ae2PhhEiz1HsTry5r0M38kDl0KVza/EryAKSCDA4IjoDh3Op2KXdkbcFwbNm1EhmMK16mMad7lx6tV0S0cJM7c4sXjY0zSda6SrhqAiuplcBUV8LbSZhr1uFvYYT8QshTZRSXQgYGkYvUY8QtAtxDyLhcrhAl9k+sDCw6ugvs4P/0neX6YO1DX/bny10M8FNsuE062iw9pMMM1amXGqWUKXOsZ/rvqGFFizhtkNKxXPKxvSCn0MqacpV38xuo0WbUBmiOCvgkRrNqtc7DE2VqtIImOBvpJaxuvgv7LzU8Zu+ETIvNZdsvlFcJgiOtL7aaCgKznRSQUJZIcArYiMKJ63hB+jAEPDyJ99MTnrb2N/Gn/c2Dt4141h1njkvHNfBzr5z4Hxwjpxjh7U+tvJW1Zq2P7XL9lX7+5zaWml6njp/rfaPPyyXLLA=</latexit><latexit sha1_base64="6IszZoljZhpuB0XoQyi7/Qt6ekc=">AAADzXicfVNdb9MwFM1aPkb52uCRF8M0SFRti7uh8RI0gTQhXhgS+5DmpnJcZ7WaOCF2WFPPvPL/eOOZP8JNG6mjQ1iK7s095x6fXDtRngilff/XSqt96/adu6v3OvcfPHz0eG39yYnKyoLxY5YlWXEWUcUTIfmxFjrhZ3nBaRol/DQav6/x02+8UCKTX3SV835KL6SIBaMaSoP1ld9ElenAyADbcIxIXFBmsDXSoreICKkHODTjLrYLaGLRcIICRBLpAuIR0tnsNCpQ9m0IfbGumg53C3sh6FnTk7VOgDDaWqjtWtRdvL2217H9GcaGmVb1frMyyYU1e3a+ae2PhhEiz1HsTry5r0M38kDl0KVza/EryAKSCDA4IjoDh3Op2KXdkbcFwbNm1EhmMK16mMad7lx6tV0S0cJM7c4sXjY0zSda6SrhqAiuplcBUV8LbSZhr1uFvYYT8QshTZRSXQgYGkYvUY8QtAtxDyLhcrhAl9k+sDCw6ugvs4P/0neX6YO1DX/bny10M8FNsuE062iw9pMMM1amXGqWUKXOsZ/rvqGFFizhtkNKxXPKxvSCn0MqacpV38xuo0WbUBmiOCvgkRrNqtc7DE2VqtIImOBvpJaxuvgv7LzU8Zu+ETIvNZdsvlFcJgiOtL7aaCgKznRSQUJZIcArYiMKJ63hB+jAEPDyJ99MTnrb2N/Gn/c2Dt4141h1njkvHNfBzr5z4Hxwjpxjh7U+tvJW1Zq2P7XL9lX7+5zaWml6njp/rfaPPyyXLLA=</latexit><latexit sha1_base64="6IszZoljZhpuB0XoQyi7/Qt6ekc=">AAADzXicfVNdb9MwFM1aPkb52uCRF8M0SFRti7uh8RI0gTQhXhgS+5DmpnJcZ7WaOCF2WFPPvPL/eOOZP8JNG6mjQ1iK7s095x6fXDtRngilff/XSqt96/adu6v3OvcfPHz0eG39yYnKyoLxY5YlWXEWUcUTIfmxFjrhZ3nBaRol/DQav6/x02+8UCKTX3SV835KL6SIBaMaSoP1ld9ElenAyADbcIxIXFBmsDXSoreICKkHODTjLrYLaGLRcIICRBLpAuIR0tnsNCpQ9m0IfbGumg53C3sh6FnTk7VOgDDaWqjtWtRdvL2217H9GcaGmVb1frMyyYU1e3a+ae2PhhEiz1HsTry5r0M38kDl0KVza/EryAKSCDA4IjoDh3Op2KXdkbcFwbNm1EhmMK16mMad7lx6tV0S0cJM7c4sXjY0zSda6SrhqAiuplcBUV8LbSZhr1uFvYYT8QshTZRSXQgYGkYvUY8QtAtxDyLhcrhAl9k+sDCw6ugvs4P/0neX6YO1DX/bny10M8FNsuE062iw9pMMM1amXGqWUKXOsZ/rvqGFFizhtkNKxXPKxvSCn0MqacpV38xuo0WbUBmiOCvgkRrNqtc7DE2VqtIImOBvpJaxuvgv7LzU8Zu+ETIvNZdsvlFcJgiOtL7aaCgKznRSQUJZIcArYiMKJ63hB+jAEPDyJ99MTnrb2N/Gn/c2Dt4141h1njkvHNfBzr5z4Hxwjpxjh7U+tvJW1Zq2P7XL9lX7+5zaWml6njp/rfaPPyyXLLA=</latexit>
Made with Latex (what else?)
16. DIGITAL TYPOGRAPHY
N. ROUGIER (INRIA) & B. ESFAHBOD (GOOGLE)
/60
INTRODUCTION
• Digital Typography
• Font Types & Formats
• Text Rendering Pipeline
PART I : TEXTURE BASED
• Rasterization
• Fast & Versatile (but ugly)
• Fast & Beaufitul (but only 2D)
PART II : DISTANCE BASED
• Signed Distance Fields
• Single Channel
• Arc approximation
• Multiple Channels
PART III : GEOMETRY BASED
• Bézier curves & glyphs
• GPU friendly
• GPU only
CONCLUSION
• Beyond this course
• Questions & answers
FONT FORMATS
16
Types
Type 1(.pfm, .pfb): glyphs are described with cubic Bézier curves
True Type (.ttf): glyphs are described with quadratic Bézier curves
Open Type (.otf): glyphs are described with quadratic or cubic Bézier curves
Web Open Font (.woff): compressed TrueType or Open Type
And many more actually…
Cubic Bézier curves Quadratic Bézier curves
The Missing Guide to Font Formats
17. DIGITAL TYPOGRAPHY
N. ROUGIER (INRIA) & B. ESFAHBOD (GOOGLE)
/60
INTRODUCTION
• Digital Typography
• Font Types & Formats
• Text Rendering Pipeline
PART I : TEXTURE BASED
• Rasterization
• Fast & Versatile (but ugly)
• Fast & Beaufitul (but only 2D)
PART II : DISTANCE BASED
• Signed Distance Fields
• Single Channel
• Arc approximation
• Multiple Channels
PART III : GEOMETRY BASED
• Bézier curves & glyphs
• GPU friendly
• GPU only
CONCLUSION
• Beyond this course
• Questions & answers
A PRIMER ON BÉZIER CURVES
17
Sergei Natanovich Bernstein (1912) / Paul de Casteljau (1959) / Pierre Bézier (1962)
A Bézier curve is defined by a set of control points P0 through Pn, where n is called its order. The
first and last control points are always the end points of the curve.
Some related problems: signed distance, thick curves, subdivision, bounding box, linear speed,
self-intersection, curve splitting, arc length, approximation of a cubic with quadratics, etc.
Pomax (2017) A primer on Bézier curves
Linear (n=1): BP0/P1(t) = (1-t)P0 + tP1
Quadratic (n=2): BP0/P1/P2(t) = (1-t)BP0/P1(t) + tBP1/P2(t)
Cubic(n=3): BP0/P1/P2/P3(t) = (1-t)BP0/P1/P2(t) + tBP1/P2/P3(t)
P1
P0
P2
P3P0
P1
P2P0
P1
18. DIGITAL TYPOGRAPHY
N. ROUGIER (INRIA) & B. ESFAHBOD (GOOGLE)
/60
INTRODUCTION
• Digital Typography
• Font Types & Formats
• Text Rendering Pipeline
PART I : TEXTURE BASED
• Rasterization
• Fast & Versatile (but ugly)
• Fast & Beaufitul (but only 2D)
PART II : DISTANCE BASED
• Signed Distance Fields
• Single Channel
• Arc approximation
• Multiple Channels
PART III : GEOMETRY BASED
• Bézier curves & glyphs
• GPU friendly
• GPU only
CONCLUSION
• Beyond this course
• Questions & answers
A PRIMER ON BÉZIER CURVES
18
Cubic Bézier curves have a lot of corner cases: inflection points, cusp, loop, overlap
Pomax (2017) A primer on Bézier curves
P1
P0
P2
P3
P1
P0
P2
P3
P1
P0
P2
P3
P1
P0
P2
P3
P1
P0
P2
P3
P1
P0
P2
P3
19. DIGITAL TYPOGRAPHY
N. ROUGIER (INRIA) & B. ESFAHBOD (GOOGLE)
/60
INTRODUCTION
• Digital Typography
• Font Types & Formats
• Text Rendering Pipeline
PART I : TEXTURE BASED
• Rasterization
• Fast & Versatile (but ugly)
• Fast & Beaufitul (but only 2D)
PART II : DISTANCE BASED
• Signed Distance Fields
• Single Channel
• Arc approximation
• Multiple Channels
PART III : GEOMETRY BASED
• Bézier curves & glyphs
• GPU friendly
• GPU only
CONCLUSION
• Beyond this course
• Questions & answers
ANATOMY OF A GLYPH
19
Vector fonts are collections of vector images, consisting of lines and curves defining the
boundary of glyphs (wikipedia). Type 1 and Type 3 Postscript fonts are described with cubic
Bézier curves. Truetype fonts are described with quadratic Bézier curves.
Images by The Australian Graphic Supply Co Images by FontLab
20. DIGITAL TYPOGRAPHY
N. ROUGIER (INRIA) & B. ESFAHBOD (GOOGLE)
/60
INTRODUCTION
• Digital Typography
• Font Types & Formats
• Text Rendering Pipeline
PART I : TEXTURE BASED
• Rasterization
• Fast & Versatile (but ugly)
• Fast & Beaufitul (but only 2D)
PART II : DISTANCE BASED
• Signed Distance Fields
• Single Channel
• Arc approximation
• Multiple Channels
PART III : GEOMETRY BASED
• Bézier curves & glyphs
• GPU friendly
• GPU only
CONCLUSION
• Beyond this course
• Questions & answers
FONT TABLES
20
Open Type Tables
BASE: Baseline data
CMAP: Character to glyph mapping
GDEF: Glyph definition data
GSUB: Glyph substitution data
Single: Replaces one glyph with one glyph.
Multiple: Replaces one glyph with more than one glyph.
Alternate: Replaces one glyph with one of many glyphs.
Ligature: Replaces multiple glyphs with one glyph.
Context: Replaces one or more glyphs in context.
Chaining: Replaces one or more glyphs in chained context.
GPOS: Glyph positioning data
JSTF: Justification data
and many more…
Libraries
STB_truetype (single header file, basic support)
→ https://github.com/nothings/stb
FreeType (standard support without text shaping)
→ https://www.freetype.org
HarfBuzz (advanced support with text shaping)
→ https://harfbuzz.github.io
21. DIGITAL TYPOGRAPHY
N. ROUGIER (INRIA) & B. ESFAHBOD (GOOGLE)
/60
INTRODUCTION
• Digital Typography
• Font Types & Formats
• Text Rendering Pipeline
PART I : TEXTURE BASED
• Rasterization
• Fast & Versatile (but ugly)
• Fast & Beaufitul (but only 2D)
PART II : DISTANCE BASED
• Signed Distance Fields
• Single Channel
• Arc approximation
• Multiple Channels
PART III : GEOMETRY BASED
• Bézier curves & glyphs
• GPU friendly
• GPU only
CONCLUSION
• Beyond this course
• Questions & answers
TEXT RENDERING PIPELINE
21
Itemization
Reordering Shaping
Justification
Rendering
Text Buffer
45 6E 67 6C 69 73 68 20 D9 8A
D8 A8 D8 B1 D8 B9 20 31 32 33
English ع ر ب ي 123
ع ر ب يEnglish 123
ع ر ب يEnglish 123
عربيEnglish 123
عربي
English
123
1
2
3 4
5
6
يبرع
English
123
Latin Shortcut
22. DIGITAL TYPOGRAPHY
N. ROUGIER (INRIA) & B. ESFAHBOD (GOOGLE)
/60
INTRODUCTION
• Digital Typography
• Font Types & Formats
• Text Rendering Pipeline
PART I : TEXTURE BASED
• Rasterization
• Fast & Versatile (but ugly)
• Fast & Beaufitul (but only 2D)
PART II : DISTANCE BASED
• Signed Distance Fields
• Single Channel
• Arc approximation
• Multiple Channels
PART III : GEOMETRY BASED
• Bézier curves & glyphs
• GPU friendly
• GPU only
CONCLUSION
• Beyond this course
• Questions & answers
PART I
22
Image by Daniel Ullrich
commons.wikimedia.org/wiki/User:Threedots
Near the end of the last century (1997), Mark
Kilgard introduced a simple OpenGL-based API
for texture mapped text.
The method packed many rasterized glyphs into
a single alpha-only texture map and used a
lookup table to assign texture coordinates to a
quadrilateral to extract a glyph when rendering.
23. DIGITAL TYPOGRAPHY
N. ROUGIER (INRIA) & B. ESFAHBOD (GOOGLE)
/60
INTRODUCTION
• Digital Typography
• Font Types & Formats
• Text Rendering Pipeline
PART I : TEXTURE BASED
• Rasterization
• Fast & Versatile (but ugly)
• Fast & Beaufitul (but only 2D)
PART II : DISTANCE BASED
• Signed Distance Fields
• Single Channel
• Arc approximation
• Multiple Channels
PART III : GEOMETRY BASED
• Bézier curves & glyphs
• GPU friendly
• GPU only
CONCLUSION
• Beyond this course
• Questions & answers
2D RASTERIZATION
23
Same input, different outputs
FreeType Native CFF Rasterizer
FreeType Light Auto Hint Rasterizer
FreeType using the New Adobe CFF Rasterizer (2013)
24. DIGITAL TYPOGRAPHY
N. ROUGIER (INRIA) & B. ESFAHBOD (GOOGLE)
/60
INTRODUCTION
• Digital Typography
• Font Types & Formats
• Text Rendering Pipeline
PART I : TEXTURE BASED
• Rasterization
• Fast & Versatile (but ugly)
• Fast & Beaufitul (but only 2D)
PART II : DISTANCE BASED
• Signed Distance Fields
• Single Channel
• Arc approximation
• Multiple Channels
PART III : GEOMETRY BASED
• Bézier curves & glyphs
• GPU friendly
• GPU only
CONCLUSION
• Beyond this course
• Questions & answers
2D RASTERIZATION
24
GDI rendering of FacitWeb (above) and Minion Pro (below) with no antialiasing.
(Source Adobe Typekit Blog)
25. DIGITAL TYPOGRAPHY
N. ROUGIER (INRIA) & B. ESFAHBOD (GOOGLE)
/60
INTRODUCTION
• Digital Typography
• Font Types & Formats
• Text Rendering Pipeline
PART I : TEXTURE BASED
• Rasterization
• Fast & Versatile (but ugly)
• Fast & Beaufitul (but only 2D)
PART II : DISTANCE BASED
• Signed Distance Fields
• Single Channel
• Arc approximation
• Multiple Channels
PART III : GEOMETRY BASED
• Bézier curves & glyphs
• GPU friendly
• GPU only
CONCLUSION
• Beyond this course
• Questions & answers
2D RASTERIZATION
25
GDI rendering of FacitWeb (above) and Minion Pro (below) with standard antialiasing.
(Source Adobe Typekit Blog)
26. DIGITAL TYPOGRAPHY
N. ROUGIER (INRIA) & B. ESFAHBOD (GOOGLE)
/60
INTRODUCTION
• Digital Typography
• Font Types & Formats
• Text Rendering Pipeline
PART I : TEXTURE BASED
• Rasterization
• Fast & Versatile (but ugly)
• Fast & Beaufitul (but only 2D)
PART II : DISTANCE BASED
• Signed Distance Fields
• Single Channel
• Arc approximation
• Multiple Channels
PART III : GEOMETRY BASED
• Bézier curves & glyphs
• GPU friendly
• GPU only
CONCLUSION
• Beyond this course
• Questions & answers
2D RASTERIZATION
26
Core text rendering of FacitWeb (above) and Minion Pro (below).
(Source Adobe Typekit Blog)
27. DIGITAL TYPOGRAPHY
N. ROUGIER (INRIA) & B. ESFAHBOD (GOOGLE)
/60
INTRODUCTION
• Digital Typography
• Font Types & Formats
• Text Rendering Pipeline
PART I : TEXTURE BASED
• Rasterization
• Fast & Versatile (but ugly)
• Fast & Beaufitul (but only 2D)
PART II : DISTANCE BASED
• Signed Distance Fields
• Single Channel
• Arc approximation
• Multiple Channels
PART III : GEOMETRY BASED
• Bézier curves & glyphs
• GPU friendly
• GPU only
CONCLUSION
• Beyond this course
• Questions & answers
2D RASTERIZATION
27
DirectWrite rendering of FacitWeb (above) and Minion Pro (below).
(Source Adobe Typekit Blog)
28. DIGITAL TYPOGRAPHY
N. ROUGIER (INRIA) & B. ESFAHBOD (GOOGLE)
/60
INTRODUCTION
• Digital Typography
• Font Types & Formats
• Text Rendering Pipeline
PART I : TEXTURE BASED
• Rasterization
• Fast & Versatile (but ugly)
• Fast & Beaufitul (but only 2D)
PART II : DISTANCE BASED
• Signed Distance Fields
• Single Channel
• Arc approximation
• Multiple Channels
PART III : GEOMETRY BASED
• Bézier curves & glyphs
• GPU friendly
• GPU only
CONCLUSION
• Beyond this course
• Questions & answers
2D RASTERIZATION
28
GDI rendering of FacitWeb (above) and Minion Pro (below) with ClearType enabled.
(Source Adobe Typekit Blog)
29. DIGITAL TYPOGRAPHY
N. ROUGIER (INRIA) & B. ESFAHBOD (GOOGLE)
/60
INTRODUCTION
• Digital Typography
• Font Types & Formats
• Text Rendering Pipeline
PART I : TEXTURE BASED
• Rasterization
• Fast & Versatile (but ugly)
• Fast & Beaufitul (but only 2D)
PART II : DISTANCE BASED
• Signed Distance Fields
• Single Channel
• Arc approximation
• Multiple Channels
PART III : GEOMETRY BASED
• Bézier curves & glyphs
• GPU friendly
• GPU only
CONCLUSION
• Beyond this course
• Questions & answers
2D RASTERIZATION
29
Gamma correction, hinting, energy distribution, etc.
30. DIGITAL TYPOGRAPHY
N. ROUGIER (INRIA) & B. ESFAHBOD (GOOGLE)
/60
INTRODUCTION
• Digital Typography
• Font Types & Formats
• Text Rendering Pipeline
PART I : TEXTURE BASED
• Rasterization
• Fast & Versatile (but ugly)
• Fast & Beaufitul (but only 2D)
PART II : DISTANCE BASED
• Signed Distance Fields
• Single Channel
• Arc approximation
• Multiple Channels
PART III : GEOMETRY BASED
• Bézier curves & glyphs
• GPU friendly
• GPU only
CONCLUSION
• Beyond this course
• Questions & answers
TEXTURE FONT I
30
Texture mapping is well suited for rendering text because textures can be rendered quickly with
current 3D hardware and even via clever programming of today's fast CPUs. Textures can be
stretched. rotated, scaled, and even projected (assuming the texture mapping is perspective
correct) so that texture mapped text looks reasonable in 3D scenes.
https://github.com/rougier/freetype-gl
Kilgard (1997) A Simple OpenGL-based API for Texture Mapped Text
31. DIGITAL TYPOGRAPHY
N. ROUGIER (INRIA) & B. ESFAHBOD (GOOGLE)
/60
INTRODUCTION
• Digital Typography
• Font Types & Formats
• Text Rendering Pipeline
PART I : TEXTURE BASED
• Rasterization
• Fast & Versatile (but ugly)
• Fast & Beaufitul (but only 2D)
PART II : DISTANCE BASED
• Signed Distance Fields
• Single Channel
• Arc approximation
• Multiple Channels
PART III : GEOMETRY BASED
• Bézier curves & glyphs
• GPU friendly
• GPU only
CONCLUSION
• Beyond this course
• Questions & answers
BIN PACKING ALGORITHMS
31
Several algorithms that can be used to solve the problem of packing rectangles into two-
dimensional finite bins. Most of the algorithms have well been studied in literature, but some of
the variants are less known and some are apparently regarded as "folklore" and no previous
reference is known. Different variants are presented and compared.
Naïve packing Skyline-BL packing
Jylänky (2010) A Thousand Ways to Pack the Bin
32. DIGITAL TYPOGRAPHY
N. ROUGIER (INRIA) & B. ESFAHBOD (GOOGLE)
/60
INTRODUCTION
• Digital Typography
• Font Types & Formats
• Text Rendering Pipeline
PART I : TEXTURE BASED
• Rasterization
• Fast & Versatile (but ugly)
• Fast & Beaufitul (but only 2D)
PART II : DISTANCE BASED
• Signed Distance Fields
• Single Channel
• Arc approximation
• Multiple Channels
PART III : GEOMETRY BASED
• Bézier curves & glyphs
• GPU friendly
• GPU only
CONCLUSION
• Beyond this course
• Questions & answers
TEXTURE FONT II
32
When displaying text on low-resolution devices (DPI < 150), one typically has to decide if one
wants to respect the pixel grid (e.g., Cleartype technology / Microsoft / native hinting) for crisp
rendering or, to privilege glyph shapes (Quartz technology / Apple / no hinting) at the cost of
blurring. There is, however, a third way that may combine the best of the two technologies (vertical
hinting).
No hinting Native hinting Auto hinting Vertical hinting
Rougier (2013) Higher Quality 2D Text Rendering
33. DIGITAL TYPOGRAPHY
N. ROUGIER (INRIA) & B. ESFAHBOD (GOOGLE)
/60
INTRODUCTION
• Digital Typography
• Font Types & Formats
• Text Rendering Pipeline
PART I : TEXTURE BASED
• Rasterization
• Fast & Versatile (but ugly)
• Fast & Beaufitul (but only 2D)
PART II : DISTANCE BASED
• Signed Distance Fields
• Single Channel
• Arc approximation
• Multiple Channels
PART III : GEOMETRY BASED
• Bézier curves & glyphs
• GPU friendly
• GPU only
CONCLUSION
• Beyond this course
• Questions & answers
TEXTURE FONT II
33
i. Use horizontal RGB sub-pixel anti-aliasing for LCD flat panels.
ii. Use vertical hinting only and completely discard the horizontal one.
iii. Use accurate glyph advance values from unhinted glyph
iv. Use accurate, high resolution values from the kerning table.
Rougier (2013) Higher Quality 2D Text Rendering
34. DIGITAL TYPOGRAPHY
N. ROUGIER (INRIA) & B. ESFAHBOD (GOOGLE)
/60
INTRODUCTION
• Digital Typography
• Font Types & Formats
• Text Rendering Pipeline
PART I : TEXTURE BASED
• Rasterization
• Fast & Versatile (but ugly)
• Fast & Beaufitul (but only 2D)
PART II : DISTANCE BASED
• Signed Distance Fields
• Single Channel
• Arc approximation
• Multiple Channels
PART III : GEOMETRY BASED
• Bézier curves & glyphs
• GPU friendly
• GPU only
CONCLUSION
• Beyond this course
• Questions & answers
TEXTURE FONT II
34
Subpixel rendering on the CPU
Subpixel positioning on the GPU
Rougier (2013) Higher Quality 2D Text Rendering
35. DIGITAL TYPOGRAPHY
N. ROUGIER (INRIA) & B. ESFAHBOD (GOOGLE)
/60
INTRODUCTION
• Digital Typography
• Font Types & Formats
• Text Rendering Pipeline
PART I : TEXTURE BASED
• Rasterization
• Fast & Versatile (but ugly)
• Fast & Beaufitul (but only 2D)
PART II : DISTANCE BASED
• Signed Distance Fields
• Single Channel
• Arc approximation
• Multiple Channels
PART III : GEOMETRY BASED
• Bézier curves & glyphs
• GPU friendly
• GPU only
CONCLUSION
• Beyond this course
• Questions & answers
PART II
35
Work & image by Xavier Casalta
casaltaxavier.com
Distance based rendering takes advantage of a
signed distance function (that can be
approximated) to compute the individual
coverage for each pixel.
The coverage can be selected to implement
various effects (stroke, thinner, thicker, shadow,
etc)
36. DIGITAL TYPOGRAPHY
N. ROUGIER (INRIA) & B. ESFAHBOD (GOOGLE)
/60
INTRODUCTION
• Digital Typography
• Font Types & Formats
• Text Rendering Pipeline
PART I : TEXTURE BASED
• Rasterization
• Fast & Versatile (but ugly)
• Fast & Beaufitul (but only 2D)
PART II : DISTANCE BASED
• Signed Distance Fields
• Single Channel
• Arc approximation
• Multiple Channels
PART III : GEOMETRY BASED
• Bézier curves & glyphs
• GPU friendly
• GPU only
CONCLUSION
• Beyond this course
• Questions & answers
DISTANCE BASED RENDERING
36
Distance based rendering takes advantage of a signed distance function (that can be
approximated) to compute the individual coverage for each pixel. The coverage can be selected
to implement various effects (stroke, thinner, thicker, shadow, etc)
37. DIGITAL TYPOGRAPHY
N. ROUGIER (INRIA) & B. ESFAHBOD (GOOGLE)
/60
INTRODUCTION
• Digital Typography
• Font Types & Formats
• Text Rendering Pipeline
PART I : TEXTURE BASED
• Rasterization
• Fast & Versatile (but ugly)
• Fast & Beaufitul (but only 2D)
PART II : DISTANCE BASED
• Signed Distance Fields
• Single Channel
• Arc approximation
• Multiple Channels
PART III : GEOMETRY BASED
• Bézier curves & glyphs
• GPU friendly
• GPU only
CONCLUSION
• Beyond this course
• Questions & answers
COMPUTING SDF
37
We present a modified distance measure for use with distance transforms of anti-aliased, area
sampled grayscale images of arbitrary binary contours. The modified measure can be used in any
vector-propagation Euclidean distance transform. Our test implementation in the traditional
SSED8 algorithm shows a considerable improvement in accuracy and homogeneity of the
distance field compared to a traditional binary image transform.
See also http://contourtextures.wikidot.com
Gustavson & Strand (2011) Anti-Aliased Euclidean distance transform
38. DIGITAL TYPOGRAPHY
N. ROUGIER (INRIA) & B. ESFAHBOD (GOOGLE)
/60
INTRODUCTION
• Digital Typography
• Font Types & Formats
• Text Rendering Pipeline
PART I : TEXTURE BASED
• Rasterization
• Fast & Versatile (but ugly)
• Fast & Beaufitul (but only 2D)
PART II : DISTANCE BASED
• Signed Distance Fields
• Single Channel
• Arc approximation
• Multiple Channels
PART III : GEOMETRY BASED
• Bézier curves & glyphs
• GPU friendly
• GPU only
CONCLUSION
• Beyond this course
• Questions & answers
SINGLE CHANNEL SDF
38
A distance field is generated from a high resolution image, and then stored into a channel of a
lower-resolution texture. In the simplest case, this texture can then be rendered simply by using
the alpha- testing and alpha-thresholding feature of modern GPUs, without a custom shader. This
allows the technique to be used on even the lowest-end 3D graphics hardware. With the use of
programmable shading, the technique is extended to perform various special effect renderings,
including soft edges, outlining, drop shadows, multi-colored images, and sharp corners.
Alpha blended Alpha tested (no shader) Alpha tested (shader)64x64 64x64 64x64
Green (2007) Improved Alpha-Tested Magnification for Vector Textures
39. DIGITAL TYPOGRAPHY
N. ROUGIER (INRIA) & B. ESFAHBOD (GOOGLE)
/60
INTRODUCTION
• Digital Typography
• Font Types & Formats
• Text Rendering Pipeline
PART I : TEXTURE BASED
• Rasterization
• Fast & Versatile (but ugly)
• Fast & Beaufitul (but only 2D)
PART II : DISTANCE BASED
• Signed Distance Fields
• Single Channel
• Arc approximation
• Multiple Channels
PART III : GEOMETRY BASED
• Bézier curves & glyphs
• GPU friendly
• GPU only
CONCLUSION
• Beyond this course
• Questions & answers
SDF: MULTIPLE CHANNELS
39
Plane partioningEdge Coloring Decomposition Padded DecompositionInner padding
Chlumsky (2015) Shape Decomposition for Multi-channel Distance Fields
40. DIGITAL TYPOGRAPHY
N. ROUGIER (INRIA) & B. ESFAHBOD (GOOGLE)
/60
INTRODUCTION
• Digital Typography
• Font Types & Formats
• Text Rendering Pipeline
PART I : TEXTURE BASED
• Rasterization
• Fast & Versatile (but ugly)
• Fast & Beaufitul (but only 2D)
PART II : DISTANCE BASED
• Signed Distance Fields
• Single Channel
• Arc approximation
• Multiple Channels
PART III : GEOMETRY BASED
• Bézier curves & glyphs
• GPU friendly
• GPU only
CONCLUSION
• Beyond this course
• Questions & answers
SDF: MULTIPLE CHANNELS
40
Chlumsky (2015) Shape Decomposition for Multi-channel Distance Fields
Texture Single channel SDF Multi channel SDF
41. DIGITAL TYPOGRAPHY
N. ROUGIER (INRIA) & B. ESFAHBOD (GOOGLE)
/60
INTRODUCTION
• Digital Typography
• Font Types & Formats
• Text Rendering Pipeline
PART I : TEXTURE BASED
• Rasterization
• Fast & Versatile (but ugly)
• Fast & Beaufitul (but only 2D)
PART II : DISTANCE BASED
• Signed Distance Fields
• Single Channel
• Arc approximation
• Multiple Channels
PART III : GEOMETRY BASED
• Bézier curves & glyphs
• GPU friendly
• GPU only
CONCLUSION
• Beyond this course
• Questions & answers
ARC APPROXIMATION
41
Since distance to arbitrary Bézier curves is hard, we can instead first convert a glyph into
(approximated) circular arc splines and upload this converted vector glyph to the GPU. Distance
are then computed onto the GPU. Corner cases are overlapping contours, tangent arcs and float
precision.
Esfahbod (2012) Glyphy
Mean size is ~25 segments
Mean size is ~8 arcs
42. DIGITAL TYPOGRAPHY
N. ROUGIER (INRIA) & B. ESFAHBOD (GOOGLE)
/60
INTRODUCTION
• Digital Typography
• Font Types & Formats
• Text Rendering Pipeline
PART I : TEXTURE BASED
• Rasterization
• Fast & Versatile (but ugly)
• Fast & Beaufitul (but only 2D)
PART II : DISTANCE BASED
• Signed Distance Fields
• Single Channel
• Arc approximation
• Multiple Channels
PART III : GEOMETRY BASED
• Bézier curves & glyphs
• GPU friendly
• GPU only
CONCLUSION
• Beyond this course
• Questions & answers
ARC APPROXIMATION
42
SDF-based antialiasing + subpixel positioning + random access (coarse grid).
Esfahbod (2012) Glyphy
43. DIGITAL TYPOGRAPHY
N. ROUGIER (INRIA) & B. ESFAHBOD (GOOGLE)
/60
INTRODUCTION
• Digital Typography
• Font Types & Formats
• Text Rendering Pipeline
PART I : TEXTURE BASED
• Rasterization
• Fast & Versatile (but ugly)
• Fast & Beaufitul (but only 2D)
PART II : DISTANCE BASED
• Signed Distance Fields
• Single Channel
• Arc approximation
• Multiple Channels
PART III : GEOMETRY BASED
• Bézier curves & glyphs
• GPU friendly
• GPU only
CONCLUSION
• Beyond this course
• Questions & answers
ARC APPROXIMATION
43
Drawback: Memory and speed are font dependent
Esfahbod (2012) Glyphy
44. DIGITAL TYPOGRAPHY
N. ROUGIER (INRIA) & B. ESFAHBOD (GOOGLE)
/60
INTRODUCTION
• Digital Typography
• Font Types & Formats
• Text Rendering Pipeline
PART I : TEXTURE BASED
• Rasterization
• Fast & Versatile (but ugly)
• Fast & Beaufitul (but only 2D)
PART II : DISTANCE BASED
• Signed Distance Fields
• Single Channel
• Arc approximation
• Multiple Channels
PART III : GEOMETRY BASED
• Bézier curves & glyphs
• GPU friendly
• GPU only
CONCLUSION
• Beyond this course
• Questions & answers
PART III
44
Image by Black[Foundry]
black-foundry.com
Charles Loop and Jim Blinn introduced in 2005
a new approach for resolution-independent
rendering of quadratic and cubic spline curves.
By tessellating a glyph the proper way, they
offered de facto a method for resolution
independent rendering of a glyph with good
rendering quality.
AA
45. DIGITAL TYPOGRAPHY
N. ROUGIER (INRIA) & B. ESFAHBOD (GOOGLE)
/60
INTRODUCTION
• Digital Typography
• Font Types & Formats
• Text Rendering Pipeline
PART I : TEXTURE BASED
• Rasterization
• Fast & Versatile (but ugly)
• Fast & Beaufitul (but only 2D)
PART II : DISTANCE BASED
• Signed Distance Fields
• Single Channel
• Arc approximation
• Multiple Channels
PART III : GEOMETRY BASED
• Bézier curves & glyphs
• GPU friendly
• GPU only
CONCLUSION
• Beyond this course
• Questions & answers
GPU FRIENDLY
45
We present a method for resolution independent rendering of paths and bounded regions, defined
by quadratic and cubic spline curves, that leverages the parallelism of programmable graphics
hardware to achieve high performance. Our result is a mechanism for rendering vector geometry
that has the following properties: resolution independence, compact geometric representation,
high performance.
Loop & Blinn (2005) Resolution Independent Curve Rendering
46. DIGITAL TYPOGRAPHY
N. ROUGIER (INRIA) & B. ESFAHBOD (GOOGLE)
/60
INTRODUCTION
• Digital Typography
• Font Types & Formats
• Text Rendering Pipeline
PART I : TEXTURE BASED
• Rasterization
• Fast & Versatile (but ugly)
• Fast & Beaufitul (but only 2D)
PART II : DISTANCE BASED
• Signed Distance Fields
• Single Channel
• Arc approximation
• Multiple Channels
PART III : GEOMETRY BASED
• Bézier curves & glyphs
• GPU friendly
• GPU only
CONCLUSION
• Beyond this course
• Questions & answers
GPU FRIENDLY
46
We determine if the pixel is inside or outside the curve by evaluating f(u, v) = u² − v in a pixel
shader program. If f (u, v) < 0 then the pixel is inside the curve, otherwise it is outside.
See also
"Rendering Vector Art on the GPU" (Charles Loop & Jim Blinn, GPU Gems 3, Chapter 25)
“Easy Scalable Text Rendering on the GPU” (Evan Wallace Medium)
Loop & Blinn (2005) Resolution Independent Curve Rendering
47. DIGITAL TYPOGRAPHY
N. ROUGIER (INRIA) & B. ESFAHBOD (GOOGLE)
/60
INTRODUCTION
• Digital Typography
• Font Types & Formats
• Text Rendering Pipeline
PART I : TEXTURE BASED
• Rasterization
• Fast & Versatile (but ugly)
• Fast & Beaufitul (but only 2D)
PART II : DISTANCE BASED
• Signed Distance Fields
• Single Channel
• Arc approximation
• Multiple Channels
PART III : GEOMETRY BASED
• Bézier curves & glyphs
• GPU friendly
• GPU only
CONCLUSION
• Beyond this course
• Questions & answers
This sketch presents a new method for resolution independent rendering of vector images
suitable for programmable graphics hardware. We have enhanced a previous method [Loop and
Blinn 2005] by using a stencil buffer and transparency multisampling.
GPU FRIENDLY
47
Kokojima et al (2006) Resolution Independent Rendering of Deformable Vector Objects(a) (b) (c)
(d) (e) (f)
Color Buffer
Processing
Stencil
Image
(Figure 1(f))
Vector
Object
(Figure 1(a))
Curve-Edged
Triangles
(Figure 1(c))
Line-Edged
Triangle Fans
(Figure 1(b))
CPU Process GPU Process
Alpha
Image Alpha to
Coverage
Stencil Buffer
Processing
Alpha
Assignment
Triangulation
(a) (b) (c)
(d) (e) (f)
Color Buffer
Processing
Stencil
Image
(Figure 1(f))
Vector
Object
(Figure 1(a))
Curve-Edged
Triangles
(Figure 1(c))
Line-Edged
Triangle Fans
(Figure 1(b))
Alpha
Image Alpha to
Stencil Buffer
Processing
Alpha
Triangulation
(a) (b) (c)
(d) (e) (f)
Color Buffer
Processing
Stencil
Image
(Figure 1(f))
Vector
Object
(Figure 1(a))
Curve-Edged
Triangles
(Figure 1(c))
Line-Edged
Triangle Fans
(Figure 1(b))
CPU Process GPU Process
Alpha
Image Alpha to
Coverage
Stencil Buffer
Processing
Alpha
Assignment
Triangulation
48. DIGITAL TYPOGRAPHY
N. ROUGIER (INRIA) & B. ESFAHBOD (GOOGLE)
/60
INTRODUCTION
• Digital Typography
• Font Types & Formats
• Text Rendering Pipeline
PART I : TEXTURE BASED
• Rasterization
• Fast & Versatile (but ugly)
• Fast & Beaufitul (but only 2D)
PART II : DISTANCE BASED
• Signed Distance Fields
• Single Channel
• Arc approximation
• Multiple Channels
PART III : GEOMETRY BASED
• Bézier curves & glyphs
• GPU friendly
• GPU only
CONCLUSION
• Beyond this course
• Questions & answers
This sketch presents a new method for resolution independent rendering of vector images
suitable for programmable graphics hardware. We have enhanced a previous method [Loop and
Blinn 2005] by using a stencil buffer and transparency multisampling.
GPU FRIENDLY
48
Kokojima et al (2006) Resolution Independent Rendering of Deformable Vector Objects
Animations by Evan Wallace (Easy Scalable Text Rendering on the GPU)
49. DIGITAL TYPOGRAPHY
N. ROUGIER (INRIA) & B. ESFAHBOD (GOOGLE)
/60
INTRODUCTION
• Digital Typography
• Font Types & Formats
• Text Rendering Pipeline
PART I : TEXTURE BASED
• Rasterization
• Fast & Versatile (but ugly)
• Fast & Beaufitul (but only 2D)
PART II : DISTANCE BASED
• Signed Distance Fields
• Single Channel
• Arc approximation
• Multiple Channels
PART III : GEOMETRY BASED
• Bézier curves & glyphs
• GPU friendly
• GPU only
CONCLUSION
• Beyond this course
• Questions & answers
GPU FRIENDLY
49
We present a vector graphics representation suitable for real-time rendering on GPUs. Our
representation can be used in place of a texture map, and renders precise antialiased edges at any
magnification. A combination of texture data and procedural computation is used to evaluate an
exact signed distance to a contour and its gradient.
Anisotropic antialiasing technique + GPU-based representation of contours + Packed grid
accelerator structure based + Sprite mapping technique + Special effects
Qin et al (2006) Real-Time Texture-Mapped Vector Glyphs
50. DIGITAL TYPOGRAPHY
N. ROUGIER (INRIA) & B. ESFAHBOD (GOOGLE)
/60
INTRODUCTION
• Digital Typography
• Font Types & Formats
• Text Rendering Pipeline
PART I : TEXTURE BASED
• Rasterization
• Fast & Versatile (but ugly)
• Fast & Beaufitul (but only 2D)
PART II : DISTANCE BASED
• Signed Distance Fields
• Single Channel
• Arc approximation
• Multiple Channels
PART III : GEOMETRY BASED
• Bézier curves & glyphs
• GPU friendly
• GPU only
CONCLUSION
• Beyond this course
• Questions & answers
We introduce a two-step “Stencil, then Cover” (StC) programming interface. Our GPU-based
approach builds upon existing techniques for curve rendering using the stencil buffer, but we
explicitly decouple in our programming interface the stencil step to determine a path’s filled or
stroked coverage from the subsequent cover step to rasterize conservative geometry intended to
test and reset the coverage determinations of the first step while shading color samples within the
path.
GPU FRIENDLY
50
Kilgard & Bolz (2012) GPU-accelerated Path Rendering
51. DIGITAL TYPOGRAPHY
N. ROUGIER (INRIA) & B. ESFAHBOD (GOOGLE)
/60
INTRODUCTION
• Digital Typography
• Font Types & Formats
• Text Rendering Pipeline
PART I : TEXTURE BASED
• Rasterization
• Fast & Versatile (but ugly)
• Fast & Beaufitul (but only 2D)
PART II : DISTANCE BASED
• Signed Distance Fields
• Single Channel
• Arc approximation
• Multiple Channels
PART III : GEOMETRY BASED
• Bézier curves & glyphs
• GPU friendly
• GPU only
CONCLUSION
• Beyond this course
• Questions & answers
GPU ONLY
51
This paper describes a method for rendering antialiased text directly from glyph outline data on
the GPU without the use of any precomputed texture images or distance fields. This capability is
valuable for text displayed inside a 3D scene because, in addition to a perspective projection, the
transform applied to the text is constantly changing with a dynamic camera view. Our method
overcomes numerical precision problems that produced artefacts in previously published
techniques and promotes high GPU utilization with an implementation that naturally avoids
divergent branching.
See demo at sluglibrary.com
See also GPU-Centered font rendering & GPU font rendering
Lengyel (2017) GPU-Centered Font Rendering Directly from Glyph Outlines
52. DIGITAL TYPOGRAPHY
N. ROUGIER (INRIA) & B. ESFAHBOD (GOOGLE)
/60
INTRODUCTION
• Digital Typography
• Font Types & Formats
• Text Rendering Pipeline
PART I : TEXTURE BASED
• Rasterization
• Fast & Versatile (but ugly)
• Fast & Beaufitul (but only 2D)
PART II : DISTANCE BASED
• Signed Distance Fields
• Single Channel
• Arc approximation
• Multiple Channels
PART III : GEOMETRY BASED
• Bézier curves & glyphs
• GPU friendly
• GPU only
CONCLUSION
• Beyond this course
• Questions & answers
GPU ONLY
52
“Today I’m pleased to announce Pathfinder, a Rust library for OpenType font rendering. The goal is
nothing less than to be the fastest vector graphics renderer in existence, and the results so far are
extremely encouraging. Not only is it very fast according to the traditional metric of raw
rasterization performance, it’s practical, featuring very low setup time (end-to-end time superior to
the best CPU rasterizers), best-in-class rasterization performance even at small glyph sizes,
minimal memory consumption (both on CPU and GPU), compatibility with existing font formats,
portability to most graphics hardware manufactured in the past five years (DirectX 10 level), and
security/safety.”
Walton (2017) Pathfinder, a fast GPU-based font rasterizer in Rust
53. DIGITAL TYPOGRAPHY
N. ROUGIER (INRIA) & B. ESFAHBOD (GOOGLE)
/60
INTRODUCTION
• Digital Typography
• Font Types & Formats
• Text Rendering Pipeline
PART I : TEXTURE BASED
• Rasterization
• Fast & Versatile (but ugly)
• Fast & Beaufitul (but only 2D)
PART II : DISTANCE BASED
• Signed Distance Fields
• Single Channel
• Arc approximation
• Multiple Channels
PART III : GEOMETRY BASED
• Bézier curves & glyphs
• GPU friendly
• GPU only
CONCLUSION
• Beyond this course
• Questions & answers
GPU ONLY
53
PathFinder algorithm takes advantage of compute shaders (GL 4.3) & post-transform cache and
rasterization occurs on the fly on the GPU. CPU setup time is minimal. Subpixel antialiasing &
positionning, 2D, 3D, outline, etc.
It is mostly a (highly efficient) translation of CPU rasterization onto the GPU.
Walton (2017) Pathfinder, a fast GPU-based font rasterizer in Rust
Rasterization time, Arial
Pathfinder (GPU)
Loop-Blinn (GPU)
GLyphy (GPU)
font.rs (CPU)
FreeType (CPU)
stb_truetype (CPU)
40 80 120 160 200
0
12.5
25
37.5
50
Font size (px)
Rasterizationtime(µs/glyph)
Setup and rasterization time, Arial 24px
Setup time Rasterization time
Pathfinder (GPU) Loop-Blinn (GPU) GLyphy (GPU) font.rs (CPU) FreeType (CPU) stb_truetype (CPU)
0
1.5
3
4.5
6
7.5
Time(µs/glyph)
54. DIGITAL TYPOGRAPHY
N. ROUGIER (INRIA) & B. ESFAHBOD (GOOGLE)
/60
INTRODUCTION
• Digital Typography
• Font Types & Formats
• Text Rendering Pipeline
PART I : TEXTURE BASED
• Rasterization
• Fast & Versatile (but ugly)
• Fast & Beaufitul (but only 2D)
PART II : DISTANCE BASED
• Signed Distance Fields
• Single Channel
• Arc approximation
• Multiple Channels
PART III : GEOMETRY BASED
• Bézier curves & glyphs
• GPU friendly
• GPU only
CONCLUSION
• Beyond this course
• Questions & answers
BEYOND MERE GEOMETRY
54
We present an algorithm for creating digital micrography images, or micrograms, a special type of
calligrams created from minuscule text. These attractive text-art works successfully combine
beautiful images with readable meaningful text.
Maharik et al (2011) Digital Micrography
55. DIGITAL TYPOGRAPHY
N. ROUGIER (INRIA) & B. ESFAHBOD (GOOGLE)
/60
INTRODUCTION
• Digital Typography
• Font Types & Formats
• Text Rendering Pipeline
PART I : TEXTURE BASED
• Rasterization
• Fast & Versatile (but ugly)
• Fast & Beaufitul (but only 2D)
PART II : DISTANCE BASED
• Signed Distance Fields
• Single Channel
• Arc approximation
• Multiple Channels
PART III : GEOMETRY BASED
• Bézier curves & glyphs
• GPU friendly
• GPU only
CONCLUSION
• Beyond this course
• Questions & answers
CONCLUSION
55
Television typography by Offstock
www.flickr.com/photos/126275939@N05
Offset lithography Gravure
Flexography Electrophotographic
(laser)
Inkjet Engraving
Thermography LCD Display
Many available techniques. Choice is dependent
of usage (2D or 3D, dynamic or static, memory
vs speed vs accuracy, etc).
PathFinder and Slug library seem to be the main
players in 2018. Loop & Blinn still competitive.
Hinting and anti-aliasing still needed until we (all)
get screen with dpi > 600.
Complex text layout is (really, really) difficult, you
don’t want to do it yourself: github.com/HOST-
Oman/libraqm
Lot of patents around !
56. DIGITAL TYPOGRAPHY
N. ROUGIER (INRIA) & B. ESFAHBOD (GOOGLE)
/60
INTRODUCTION
• Digital Typography
• Font Types & Formats
• Text Rendering Pipeline
PART I : TEXTURE BASED
• Rasterization
• Fast & Versatile (but ugly)
• Fast & Beaufitul (but only 2D)
PART II : DISTANCE BASED
• Signed Distance Fields
• Single Channel
• Arc approximation
• Multiple Channels
PART III : GEOMETRY BASED
• Bézier curves & glyphs
• GPU friendly
• GPU only
CONCLUSION
• Beyond this course
• Questions & answers
FURTHER READING
56
Web
Texts Rasterization Exposures - Maxim Shemanarev (2006)
The Technology of Text - Kevin Larson (2007)
Treatise on Font Rasterisation - Freddie Witherden (2010)
State of Text Rendering - Behdad Esfahbod (2012)
CS 354 Typography - Mark Kilgard (2012)
High-DPI, Subpixel Text Positioning, Hinting - Behdad Esfahbod (2012)
Android’s Font Renderer - Romain Guy (2014)
Complex Text on Simple Devices - Pedro Navarro (2016)
Introducing DirectWrite - Microsoft (2017)
A Primer on Bézier curves - Pomax (2017)
Papers
Mark Kilgard. A Simple OpenGL-based API for Texture Mapped Text (1997)
Sarah F. Frisken, et al. Adaptively sampled distance fields (2000)
Charles Loop and Jim Blinn. Resolution Independent Curve Rendering (2005)
Zhipei Qin et al, Real-Time Texture-Mapped Vector Glyphs (2006)
Chris Green. Improved Alpha-Tested Magnification for Vector Textures and Special Effects (2007)
Behdad Esfahbod. Glyphy (2011)
Ron Maharik et al. Digital Micrography (2011)
Stefan Gustavson. 2D Shape Rendering by Distance Fields (2012)
Mark Kilgard and Jeff Bolz. GPU-Accelerated Path Rendering (2012)
Nicolas P. Rougier. Higher Quality 2D Text Rendering (2013)
Viktor Chlumsky. Shape Decomposition for Multi-channel Distance Fields (2015)
Eric Lengyel. GPU-Centered Font Rendering Directly from Glyph Outlines (2017)
Patrick Walton. Path Finder (2017)
57. DIGITAL TYPOGRAPHY
N. ROUGIER (INRIA) & B. ESFAHBOD (GOOGLE)
/60
INTRODUCTION
• Digital Typography
• Font Types & Formats
• Text Rendering Pipeline
PART I : TEXTURE BASED
• Rasterization
• Fast & Versatile (but ugly)
• Fast & Beaufitul (but only 2D)
PART II : DISTANCE BASED
• Signed Distance Fields
• Single Channel
• Arc approximation
• Multiple Channels
PART III : GEOMETRY BASED
• Bézier curves & glyphs
• GPU friendly
• GPU only
CONCLUSION
• Beyond this course
• Questions & answers
RELATED SHADERTOYS
57
www.shadertoy.com/view/MdycWh www.shadertoy.com/view/Mt2GWD www.shadertoy.com/view/4s3XDn
www.shadertoy.com/view/4sVyWh www.shadertoy.com/view/ldXyRn www.shadertoy.com/view/llyXDV
www.shadertoy.com/view/4dfXDn www.shadertoy.com/view/XdXGRB www.shadertoy.com/view/4ts3DB
58. DIGITAL TYPOGRAPHY
N. ROUGIER (INRIA) & B. ESFAHBOD (GOOGLE)
/60
INTRODUCTION
• Digital Typography
• Font Types & Formats
• Text Rendering Pipeline
PART I : TEXTURE BASED
• Rasterization
• Fast & Versatile (but ugly)
• Fast & Beaufitul (but only 2D)
PART II : DISTANCE BASED
• Signed Distance Fields
• Single Channel
• Arc approximation
• Multiple Channels
PART III : GEOMETRY BASED
• Bézier curves & glyphs
• GPU friendly
• GPU only
CONCLUSION
• Beyond this course
• Questions & answers
QUESTIONS?
58
• Where to find good fonts? dafont.com, fontsquirrel.com
• When does cleartype patent end ? Not clear (ha ha)
• Are hinting and aliasing still needed? Yes
• What are the most complete font families? Noto, DejaVu
• How many languages in the world? Around 7000
• How many scripts in latest unicode (11.0)? 146
• How many characters in latest unicode (11.0)? 137,439
• Is there any forthcoming support for text in Vulkan ? No
• Should I tell my colleagues I love Comic Sans? No
• Are there any open source tools to design fonts? FontForge
• Why “ff” & “fi” disappear when I copy text ? Ligatures
• Should I apply AA before or after gamma correction? Before
• Should I stay or should I go? stay (a few more minutes)
Any other questions?
59. DIGITAL TYPOGRAPHY
N. ROUGIER (INRIA) & B. ESFAHBOD (GOOGLE)
/60
INTRODUCTION
• Digital Typography
• Font Types & Formats
• Text Rendering Pipeline
PART I : TEXTURE BASED
• Rasterization
• Fast & Versatile (but ugly)
• Fast & Beaufitul (but only 2D)
PART II : DISTANCE BASED
• Signed Distance Fields
• Single Channel
• Arc approximation
• Multiple Channels
PART III : GEOMETRY BASED
• Bézier curves & glyphs
• GPU friendly
• GPU only
CONCLUSION
• Beyond this course
• Questions & answers
DIGITAL TYPOGRAPHY
59
Between art & design.
Raghed Abu HamdanGary Hustwit Unknown artist