[小脚本] 可视化mesh法向量

仅仅为了画张图,懒得详细渲染到图片了,想到用meshlab帮忙算法向量,然后用meshlab 可视化出来。

meshlab 保存的时候保存normal就会帮你算了, 然后脚本主要是处理把法向量转化成0-1之间,这样附在 顶点后面,meshlab就会显示出顶点的颜色了。
脚本用的ruby。

require '_chj/chj' 
include CHJmethod 

lines = readlines "shape.obj"

v = lines.select{|e| e[0..1]=="v "}.map{|e|e.split[1..3]}
vn = lines.select{|e| e[0..1]=="vn"}.map{|e|e.split[1..3].map{|e| e.to_f}}.map do |e|  
    len = Math.sqrt e.inject(0){|sum, x| sum+x*x}
    e.map{|x| x/len*0.5+0.5}
end
f = lines.select{|e| e[0..1]=="f "}.map{|e|e.split[1..3].map{|e|e.split("//")[0]}}

nV, nF = v.size, f.size

File.open("normal.obj", "w") do |fp|
    0.upto(nV-1).each do |id|
        fp.puts "v "+v[id].join(" ")+" "+vn[id].join(" ")
    end
    0.upto(nF-1).each do |id|
        fp.puts "f "+f[id].join(" ")
    end
end

在这里插入图片描述-> 在这里插入图片描述

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值