1樓:賁禹強
這個事情其實蠻尷尬的。。。看到前面有那麼多前輩做出了如此用心的回答。。。
只是因為標籤裡有Grasshopper,我不清楚是不是題主表示一定要用GH實現,但是事實是我覺得這個東西真的是用Plexus做的。。。。。
乙個AE外掛程式。5分鐘輕鬆出圖。。。
2樓:地鐵風
Blender 實現。先放成品:
《更新》
這是 40k 個點的:
用外掛程式什麼的太無聊了,自己寫程式才是王道。Delaunay triangulation 了解一下?當然這個演算法寫起來挺麻煩,所以我直接找了現成的 有這個以後剩下的都是體力活了。
既然是 triangulation,首先要有一坨點,所以步驟大概是這樣的:
生成一坨隨機的座標
用 triangulation 生成三角形
用三角形生成 mesh
對 mesh 做合適的變形
Blender 的 cycle 渲染器不能渲染「點」這種東西,所以要把這一坨點變成一坨球體
Blender 也不能直接渲染邊(edge),所以要把邊變成 mesh
渲染後期
首先生成隨機座標。在乙個範圍裡隨機生成點有很多方法,其中一些演算法可以讓生成的點看起來比較「均勻」,這樣出來的效果是墜吼的。但是我懶,所以我直接用了隨機數
class
Point2D
(object
):def
__init__
(self,x
=0,y
=0):self.x
=xself.y
=ydeftoVert
(self,z
=0):return
(self.x
,self.y
,z)def
genRandomPoints
(count
,xrange
,yrange
):foriin
range
(count
):yield
Point2D
(random
.uniform(*
xrange
),random
.uniform(*
yrange
))然後生成三角形並生成 mesh
defcreateMesh
(points
):me
=bpy
.data
.meshes
.new
("TheMesh")ob
=bpy
.data
.objects
.new
("TheObject",me
)ob.location
=Vector((0
,0,0
))ob
.show_name
=True
# Link object to scene and make active
scn=
bpy.
context
.scene
scn.
objects
.link(ob
)scn
.objects
.active=ob
ob.select
=True
# Create mesh from given verts, faces.
verts
=tuple
(point
.toVert
()for
point
inpoints
)faces
=computeDelaunayTriangulation
(points)me
.from_pydata
(verts,,
faces
)# Update mesh with new datame.
update
()return
obcreateMesh
(tuple
(genRandomPoints
(10000,(
-4,4
),(-2
,2))))
我這裡只用了 10000 個點。本來計畫只是試一下,成品應該用 40000 個點的,但是最後我懶得再搞一次了出來的效果是這樣的:
這個 mesh 還是平平的一坨,不好看,所以要加置換和變形
然後就可以放小球了。
defcreateBallsFromMesh
(mesh
):Verts
=mesh
.vertices
bpy.
ops.
object
.select_all
(action
='DESELECT'
)bpy
.ops
.mesh
.primitive_uv_sphere_add
(segments=4
,ring_count=4
,size
=0.002
,location=(
0,0,
0))RefBall
=bpy
.context
.object
Balls=
i=0for
Vert
inVerts:if
i%100==0:
('.'
,end=""
,flush
=True
)Ball
=RefBall
.copy
()Ball
.data
=RefBall
.data
.copy
()bpy
.context
.scene
.objects
.link
(Ball
)Ball
.location
=Vert.co
.to_tuple
()Balls.(
Ball)i
+=1return
Balls
Balls
=createBallsFromMesh
(bpy
.context
.selected_objects[0
].data
)bpy
.ops
.object
.select_all
(action
='DESELECT'
)for
Ball
inBalls
:Ball
.select
=True
bpy.
context
.scene
.objects
.active
=Balls[0
]bpy
.ops
.object
.join
()這裡有個坑。新增小球的時候不要用 10000 次 primitive_uv_sphere_add(),而是要建乙個樣本然後 copy 10000 次。(思考題:
這是為什麼呢?)
球長這樣:
接下來就沒 Python 什麼事了(當然你完全可以寫個 Python 讓整個過程全自動,但是我懶啊)。在 mesh 上加個 Wireframe 修改器,把 mesh 和球的材質都設成自發光,然後就可以渲染了。
直接渲染出來效果是比較愣的,還需要後期一下。大概這樣:
然後加字出圖就可以了。
整個流程有很多可以玩的地方:
隨機生成座標的演算法對最終效果影響很大,有很多 non-trivial 的演算法可選。
可以生成更密的 mesh。
可以生成多個 mesh 放在一起。
後期的時候有各種效果可以玩,比如這種殺馬特效果:
《更新》
玩了點別的花樣,高斯分布的點,按距離隨機生成 edge:
Blender 原始檔:https://
,注意裡面有兩個 scenes。
3樓:Lu Kris
「當我看到乙隻鳥,它走路像鴨子,游泳像鴨子,叫聲像鴨子,我就稱其為鴨子。」
所以我覺得這是用AE的Plexus外掛程式做的。
請問這張海報的效果是如何實現的?
Orthoplex 我來寫個回答,純Photoshop實現。看了看幾個高讚回答,似乎都沒有正確實現出題主要的效果啊。題主那個效果,重點在於用線寬的變化實現明暗的變化。使用Grasshopper那個回答實現的效果是對的,不過這個效果實際上用Photoshop就能輕鬆做出來,需要的只是一點奇思妙想。我沒...
這張圖是否用 Ps 完成,如何實現?
ku ha ps可以的。我就不作圖了,直接說。先打出文字,然後用變形工具扭曲到這個角度,這作為第一層,按住alt鍵,同時不斷按上鍵或者下鍵,多次按直到得到你期望的厚度,這時候就會做成乙個很標準的立體文字形狀了。得到這個形狀以後,合併除最上層以外的圖層,就可以對上層和立面分別上色做光影了。要注意的是,...
如何評價數學的深淵這張圖?
雲處安 特別反對數學研究引申出來的推論。數學是形式和數量的可學 數學推論用來論證形式和數量才合邏輯。最大的錯誤就在於,竟把所謂純粹數學的真理,都看作抽象的真理和一般的真理。這真是大錯特錯,因此眼見世人竟普遍同意這種看法,真是吃驚不小。數學的原理決不是一般的原理。比方說,比數對形式和數量是適用的,對心...