Close
AlgoliaLogoLight
Close full mode
logo

Lerp

Git RepositoryEdit on Github

What is Lerp?

Lerp หรือ Linear interpolation ไม่ว่าจะทำเกมหรือเขียน shader บอกได้เลยว่าเราไม่สามารถหลีกหนี lerp พ้นและใช้มากที่สุดครับโดยเฉพาะถ้าใครเขียน Shaderมาก่อนแทบทุกอย่างที่มีการ blend กันของค่าอะไรสักอย่างจะต้องใช้เจ้า lerpนี่แน่นอนครับเพราะฉะนั้นแล้วหนียังไงก็ไม่พ้นครับเรามารู้จักมันกันเลยดีกว่า รู้ไว้ได้ใช้แน่นอนครับอันนี้บอกเลย


Formula

lerp = (1 - t) a + b t

lerp เป็นฟังก์ชันที่จะเอาค่า 2 ค่ามาผสมกันมี input คือ a b t ฟังก์ชัน Lerp นั้นมาจากสมการ

a = ค่าเริ่มต้น b = ค่าสุดท้าย t = ค่าอ้างอิง มีค่าเป็น 0-1

ใน Unity จะอยู่ใน Mathf.Lerp แต่ถ้าใน Shader Language HLSL คือ lerp เฉยๆนั่นเอง แต่ถ้าเป็น GLSL จะเรียกว่า mix ครับ


Example

เรามาดูตัวอย่างเช่นถ้าเราจะทำแอนิเมชั่นObjectเคลื่อนที่จากจุดa ไปจุดbโดยมีค่า t เป็นเวลา0-1 เพราะฉะนั้นเราถ้า หาก t = 0 object ของเราจะอยู่ที่จุด a แต่ถ้า t = 1 object เราจะอยู่ที่จุด b ถ้า t = 0.5 object จะอยู่ระหว่างจุดกึ่งกลางของวัตถุ

lerp ไม่ได้ใช้แค่เฉพาะกับตัวเลข เราสามารถใช้ lerp กับสีทำให้เกิดการผสมกันของสี2สี โดยมี t เป็นตัวอ้างอิง ถ้า t = 0 ก็จะได้สีa ถ้า t = 1 จะได้สีb และถ้า t = 0.5 เราก็จะได้ค่ากลางระหว่าง 2สี

Loading comments...